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) };