aco: insert s_nop before discard early exit sendmsg(dealloc_vgpr)

Forgot about this one.

fossil-db (gfx1100):
Totals from 3920 (2.94% of 133461) affected shaders:
Instrs: 6632088 -> 6636008 (+0.06%)
CodeSize: 34165376 -> 34181056 (+0.05%)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Fixes: 37fbfa655a ("aco: insert s_nop before VGPR deallocation")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29770>
This commit is contained in:
Rhys Perry 2023-08-25 13:56:55 +01:00 committed by Marge Bot
parent 814e7c7af5
commit 9fe3af1e2a
2 changed files with 5 additions and 1 deletions

View file

@ -2375,8 +2375,10 @@ lower_to_hw_instr(Program* program)
if (program->stage == fragment_fs)
bld.exp(aco_opcode::exp, Operand(v1), Operand(v1), Operand(v1), Operand(v1), 0,
target, false, true, true);
if (should_dealloc_vgprs)
if (should_dealloc_vgprs) {
bld.sopp(aco_opcode::s_nop, 0);
bld.sopp(aco_opcode::s_sendmsg, sendmsg_dealloc_vgprs);
}
bld.sopp(aco_opcode::s_endpgm);
bld.reset(&ctx.instructions);

View file

@ -177,6 +177,7 @@ BEGIN_TEST(isel.discard_early_exit.mrtz)
//! s_endpgm ; $_
//! BB1:
//! exp mrtz off, off, off, off done ; $_ $_
//! s_nop 0 ; $_
//! s_sendmsg sendmsg(MSG_DEALLOC_VGPRS) ; $_
//! s_endpgm ; $_
@ -205,6 +206,7 @@ BEGIN_TEST(isel.discard_early_exit.mrt0)
//! s_endpgm ; $_
//! BB1:
//! exp mrt0 off, off, off, off done ; $_ $_
//! s_nop 0 ; $_
//! s_sendmsg sendmsg(MSG_DEALLOC_VGPRS) ; $_
//! s_endpgm ; $_