From ce11c064294540ed5ea09e71c477b2d481b4d3a6 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Tue, 22 Nov 2022 16:49:13 +0100 Subject: [PATCH] aco: fix emitting DEALLOC_VGPRS in the discard block It should be emitted right before s_endpgm. Cc: 22.3 mesa-stable Signed-off-by: Samuel Pitoiset Reviewed-by: Rhys Perry Part-of: --- src/amd/compiler/aco_lower_to_hw_instr.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/amd/compiler/aco_lower_to_hw_instr.cpp b/src/amd/compiler/aco_lower_to_hw_instr.cpp index dfb45dd8966..0f4d1f445ff 100644 --- a/src/amd/compiler/aco_lower_to_hw_instr.cpp +++ b/src/amd/compiler/aco_lower_to_hw_instr.cpp @@ -2130,11 +2130,11 @@ lower_to_hw_instr(Program* program) block = &program->blocks[block_idx]; bld.reset(discard_block); - if (should_dealloc_vgprs) - bld.sopp(aco_opcode::s_sendmsg, -1, sendmsg_dealloc_vgprs); bld.exp(aco_opcode::exp, Operand(v1), Operand(v1), Operand(v1), Operand(v1), 0, program->gfx_level >= GFX11 ? V_008DFC_SQ_EXP_MRT : V_008DFC_SQ_EXP_NULL, false, true, true); + if (should_dealloc_vgprs) + bld.sopp(aco_opcode::s_sendmsg, -1, sendmsg_dealloc_vgprs); bld.sopp(aco_opcode::s_endpgm); bld.reset(&ctx.instructions);