From 174236d2ed7f082a80a028bea804fe4030652cca 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: (cherry picked from commit ce11c064294540ed5ea09e71c477b2d481b4d3a6) --- .pick_status.json | 2 +- src/amd/compiler/aco_lower_to_hw_instr.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 8cdbe843583..d79562e9e25 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -346,7 +346,7 @@ "description": "aco: fix emitting DEALLOC_VGPRS in the discard block", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null }, diff --git a/src/amd/compiler/aco_lower_to_hw_instr.cpp b/src/amd/compiler/aco_lower_to_hw_instr.cpp index 08eabda3c9f..5fb097af093 100644 --- a/src/amd/compiler/aco_lower_to_hw_instr.cpp +++ b/src/amd/compiler/aco_lower_to_hw_instr.cpp @@ -2129,11 +2129,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);