mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 02:38:04 +02:00
pan/bifrost: do not CSE WMASK
WMASK is used to lower subgroup ballot/ballot_relaxed operations. Unlike
ordinary ALU instructions, the result of WMASK depends not only on its
explicit source, but also on the implicit subgroup execution state, such
as the active lane mask.
Treating WMASK as a normal CSE-able instruction can collapse subgroup
predicate chains incorrectly. This may remove the producer of a predicate
SSA value while leaving later predicate-combine instructions still
referencing it. The invalid SSA source then reaches the Valhall packer
and fails with errors like:
Invalid type of source 2:
r2 = ICMP_AND.u32.eq.m1 r2^, r0, %23^
Fixed: dEQP-VK.subgroups.vote.graphics.subgroupallequal_ivec2
Signed-of-by: Ryan Zhang <ryan.zhang@nxp.com>
This commit is contained in:
parent
665ebce297
commit
580d3e2f52
1 changed files with 1 additions and 0 deletions
|
|
@ -116,6 +116,7 @@ instr_can_cse(const bi_instr *I)
|
|||
switch (I->op) {
|
||||
case BI_OPCODE_DTSEL_IMM:
|
||||
case BI_OPCODE_DISCARD_F32:
|
||||
case BI_OPCODE_WMASK:
|
||||
return false;
|
||||
default:
|
||||
break;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue