aco/stats: fix s_waitcnt parsing
This was broken for GFX11 (s_waitcnt encoding changed) and s_waitcnt_vscnt (waited for vm/lgkm/exp to be 0). Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Georg Lehmann <dadschoorse@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28981>
This commit is contained in:
@@ -335,9 +335,11 @@ get_wait_imm(Program* program, aco_ptr<Instruction>& instr)
|
||||
if (instr->opcode == aco_opcode::s_endpgm) {
|
||||
return wait_imm(0, 0, 0, 0);
|
||||
} else if (instr->opcode == aco_opcode::s_waitcnt) {
|
||||
return wait_imm(GFX10_3, instr->salu().imm);
|
||||
return wait_imm(program->gfx_level, instr->salu().imm);
|
||||
} else if (instr->opcode == aco_opcode::s_waitcnt_vscnt) {
|
||||
return wait_imm(0, 0, 0, instr->salu().imm);
|
||||
wait_imm imm;
|
||||
imm.vs = instr->salu().imm;
|
||||
return imm;
|
||||
} else if (instr->isVINTERP_INREG()) {
|
||||
wait_imm imm;
|
||||
imm.exp = instr->vinterp_inreg().wait_exp;
|
||||
|
||||
Reference in New Issue
Block a user