mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-25 08:40:11 +01:00
nir/divergence: improve DA of shuffle
If the data is uniform, then it's really a uniform copy. If the index is uniform, then it's really a read_invocation. Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
This commit is contained in:
parent
f97d933426
commit
c877f4d320
1 changed files with 5 additions and 1 deletions
|
|
@ -200,7 +200,6 @@ visit_intrinsic(bool *divergent, nir_intrinsic_instr *instr,
|
|||
case nir_intrinsic_ballot_find_lsb:
|
||||
case nir_intrinsic_ballot_find_msb:
|
||||
case nir_intrinsic_ballot_bit_count_reduce:
|
||||
case nir_intrinsic_shuffle:
|
||||
case nir_intrinsic_shuffle_xor:
|
||||
case nir_intrinsic_shuffle_up:
|
||||
case nir_intrinsic_shuffle_down:
|
||||
|
|
@ -247,6 +246,11 @@ visit_intrinsic(bool *divergent, nir_intrinsic_instr *instr,
|
|||
break;
|
||||
}
|
||||
|
||||
case nir_intrinsic_shuffle:
|
||||
is_divergent = divergent[instr->src[0].ssa->index] &&
|
||||
divergent[instr->src[1].ssa->index];
|
||||
break;
|
||||
|
||||
/* Intrinsics which are always divergent */
|
||||
case nir_intrinsic_load_color0:
|
||||
case nir_intrinsic_load_color1:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue