anv: No need to lower to A64 messages for 64-bit atomics
authorSagar Ghuge <sagar.ghuge@intel.com>
Tue, 31 Aug 2021 02:00:50 +0000 (19:00 -0700)
committerMarge Bot <eric+marge@anholt.net>
Thu, 9 Sep 2021 23:34:33 +0000 (23:34 +0000)
With LSC support, we can do 64-bit atomics with A32/64 messages.

Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Suggested-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12566>

src/intel/vulkan/anv_nir_apply_pipeline_layout.c

index 8c34223..0f50849 100644 (file)
@@ -723,7 +723,8 @@ try_lower_direct_buffer_intrinsic(nir_builder *b,
       /* 64-bit atomics only support A64 messages so we can't lower them to
        * the index+offset model.
        */
-      if (is_atomic && nir_dest_bit_size(intrin->dest) == 64)
+      if (is_atomic && nir_dest_bit_size(intrin->dest) == 64 &&
+          !state->pdevice->info.has_lsc)
          return false;
 
       /* Normal binding table-based messages can't handle non-uniform access