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:
@@ -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);
|
||||
|
||||
@@ -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 ; $_
|
||||
|
||||
|
||||
Reference in New Issue
Block a user