aco: fix ds_sub_gs_reg_rtn validation

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Fixes: 8d5cc23c18 ("aco: use gds reg when ordered xfb counter add")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23434>
This commit is contained in:
Rhys Perry 2023-06-05 12:01:19 +01:00 committed by Marge Bot
parent e2927dd5e7
commit 53383fe8a5

View file

@ -280,6 +280,7 @@ validate_ir(Program* program)
(flat && i == 1) || (instr->isMIMG() && (i == 1 || i == 2)) ||
((instr->isMUBUF() || instr->isMTBUF()) && i == 1) ||
(instr->isScratch() && i == 0) ||
(instr->isDS() && i == 0) ||
(instr->opcode == aco_opcode::p_init_scratch && i == 0);
check(can_be_undef, "Undefs can only be used in certain operands", instr.get());
} else {
@ -744,7 +745,8 @@ validate_ir(Program* program)
}
case Format::DS: {
for (const Operand& op : instr->operands) {
check((op.isTemp() && op.regClass().type() == RegType::vgpr) || op.physReg() == m0,
check((op.isTemp() && op.regClass().type() == RegType::vgpr) || op.physReg() == m0 ||
op.isUndefined(),
"Only VGPRs are valid DS instruction operands", instr.get());
}
if (!instr->definitions.empty())