mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 22:38:05 +02:00
aco: fix image_atomic_cmp_swap
Fixes: 71440ba0f5 ('aco: reorder VMEM operands in ACO IR')
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3652>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3652>
This commit is contained in:
parent
0d14f41625
commit
3b323d6601
2 changed files with 3 additions and 2 deletions
|
|
@ -1547,7 +1547,7 @@ void register_allocation(Program *program, std::vector<std::set<Temp>> live_out_
|
|||
instr->definitions[0].setFixed(instr->operands[3].physReg());
|
||||
} else if (instr->format == Format::MIMG &&
|
||||
instr->definitions.size() == 1 &&
|
||||
instr->operands[1].regClass() == instr->definitions[0].regClass()) {
|
||||
instr->operands[1].regClass().type() == RegType::vgpr) {
|
||||
instr->definitions[0].setFixed(instr->operands[1].physReg());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -244,7 +244,8 @@ void validate(Program* program, FILE * output)
|
|||
if (instr->operands[1].hasRegClass() && instr->operands[1].regClass().type() == RegType::sgpr)
|
||||
check(instr->operands[1].regClass() == s4, "MIMG operands[1] (sampler constant) must be 4 SGPRs", instr.get());
|
||||
else if (instr->operands[1].hasRegClass() && instr->operands[1].regClass().type() == RegType::vgpr)
|
||||
check(instr->definitions.empty() || instr->definitions[0].regClass() == instr->operands[1].regClass(),
|
||||
check((instr->definitions.empty() || instr->definitions[0].regClass() == instr->operands[1].regClass() ||
|
||||
instr->opcode == aco_opcode::image_atomic_cmpswap || instr->opcode == aco_opcode::image_atomic_fcmpswap),
|
||||
"MIMG operands[1] (VDATA) must be the same as definitions[0] for atomics", instr.get());
|
||||
check(instr->operands[2].hasRegClass() && instr->operands[2].regClass().type() == RegType::vgpr,
|
||||
"MIMG operands[2] (VADDR) must be VGPR", instr.get());
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue