aco: relax validation rules for p_reduce dst RegType
By exposing a subgroupSize of 64, reductions with cluster_size 32 in wave32 might be considered divergent, and thus, result in a VGPR. Fixes: dEQP-VK.subgroups.clustered.graphics.subgroupclustered* with wave32 Reviewed-by: Timur Kristóf <timur.kristof@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10769>
This commit is contained in:
committed by
Marge Bot
parent
343d90b6ab
commit
c7d679f0f7
@@ -378,7 +378,7 @@ bool validate_ir(Program* program)
|
||||
check(op.regClass().type() == RegType::vgpr, "All operands of PSEUDO_REDUCTION instructions must be in VGPRs.", instr.get());
|
||||
|
||||
if (instr->opcode == aco_opcode::p_reduce && instr->reduction().cluster_size == program->wave_size)
|
||||
check(instr->definitions[0].regClass().type() == RegType::sgpr, "The result of unclustered reductions must go into an SGPR.", instr.get());
|
||||
check(instr->definitions[0].regClass().type() == RegType::sgpr || program->wave_size == 32, "The result of unclustered reductions must go into an SGPR.", instr.get());
|
||||
else
|
||||
check(instr->definitions[0].regClass().type() == RegType::vgpr, "The result of scans and clustered reductions must go into a VGPR.", instr.get());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user