Module: Mesa
Branch: main
Commit: 11bcce94615fe72a6e0ab76dc72db568762879e6
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=11bcce94615fe72a6e0ab76dc72db568762879e6

Author: Faith Ekstrand <faith.ekstr...@collabora.com>
Date:   Fri Nov 17 10:53:53 2023 -0600

nak: Use c == 0x0 for shuffle_up

The bounds check on SHFL.UP is from below, so we actually want
maxLane == 0.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26264>

---

 src/nouveau/compiler/nak_from_nir.rs | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/nouveau/compiler/nak_from_nir.rs 
b/src/nouveau/compiler/nak_from_nir.rs
index 4b97babb74c..9e877fae5de 100644
--- a/src/nouveau/compiler/nak_from_nir.rs
+++ b/src/nouveau/compiler/nak_from_nir.rs
@@ -1868,14 +1868,18 @@ impl<'a> ShaderFromNir<'a> {
                     in_bounds: Dst::None,
                     src: data,
                     lane: idx,
-                    c: 0x1f.into(),
+                    c: if intrin.intrinsic == nir_intrinsic_shuffle_up {
+                        0.into()
+                    } else {
+                        0x1f.into()
+                    },
                     op: match intrin.intrinsic {
                         nir_intrinsic_read_invocation
                         | nir_intrinsic_shuffle => ShflOp::Idx,
                         nir_intrinsic_shuffle_down => ShflOp::Down,
                         nir_intrinsic_shuffle_up => ShflOp::Up,
                         nir_intrinsic_shuffle_xor => ShflOp::Bfly,
-                        _ => panic!("Unknown vote intrinsic"),
+                        op => panic!("Unknown shuffle intrinsic {}", op),
                     },
                 });
                 self.set_dst(&intrin.def, dst);

Reply via email to