From 13f7ea7b3d0f6855ecd3612c11548d7b748970d3 Mon Sep 17 00:00:00 2001 From: Faith Ekstrand Date: Thu, 20 Feb 2025 09:22:30 -0600 Subject: [PATCH] nak: Only use suld.constant on Ampere+ Turing doesn't support it so we'll use suld.weak instead. While we're here, get rid of an accidental copy+paste condition. Fixes: ffdc0d8e98ee ("nak: Use suld.constant when ACCESS_CAN_REORDER is set") Reviewed-by: Mel Henning Part-of: --- src/nouveau/compiler/nak/from_nir.rs | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/nouveau/compiler/nak/from_nir.rs b/src/nouveau/compiler/nak/from_nir.rs index e488c582290..af45fc59016 100644 --- a/src/nouveau/compiler/nak/from_nir.rs +++ b/src/nouveau/compiler/nak/from_nir.rs @@ -2338,11 +2338,12 @@ impl<'a> ShaderFromNir<'a> { let coord = self.get_image_coord(intrin, dim); // let sample = self.get_src(&srcs[2]); - let mem_order = if intrin.intrinsic - == nir_intrinsic_load_global_constant - || (intrin.access() & ACCESS_CAN_REORDER) != 0 - { - MemOrder::Constant + let mem_order = if (intrin.access() & ACCESS_CAN_REORDER) != 0 { + if self.sm.sm() >= 80 { + MemOrder::Constant + } else { + MemOrder::Weak + } } else { MemOrder::Strong(MemScope::System) }; @@ -2372,11 +2373,12 @@ impl<'a> ShaderFromNir<'a> { let coord = self.get_image_coord(intrin, dim); // let sample = self.get_src(&srcs[2]); - let mem_order = if intrin.intrinsic - == nir_intrinsic_load_global_constant - || (intrin.access() & ACCESS_CAN_REORDER) != 0 - { - MemOrder::Constant + let mem_order = if (intrin.access() & ACCESS_CAN_REORDER) != 0 { + if self.sm.sm() >= 80 { + MemOrder::Constant + } else { + MemOrder::Weak + } } else { MemOrder::Strong(MemScope::System) };