clover/nir: fix mem_shared by using address_format_32bit_offset
authorKarol Herbst <kherbst@redhat.com>
Fri, 14 Aug 2020 19:56:00 +0000 (21:56 +0200)
committerMarge Bot <eric+marge@anholt.net>
Sat, 15 Aug 2020 10:59:39 +0000 (10:59 +0000)
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6325>

src/gallium/frontends/clover/nir/invocation.cpp

index b48dbd5f84a02d91fe7954dcef14ae069850e1b9..cae6ff235bab229c106668314288b92218640e2f 100644 (file)
@@ -134,13 +134,16 @@ module clover::nir::spirv_to_nir(const module &mod, const device &dev,
       NIR_PASS_V(nir, nir_lower_vars_to_ssa);
       NIR_PASS_V(nir, nir_opt_dce);
 
       NIR_PASS_V(nir, nir_lower_vars_to_ssa);
       NIR_PASS_V(nir, nir_opt_dce);
 
-      NIR_PASS_V(nir, nir_lower_explicit_io, nir_var_shader_in, nir_address_format_32bit_offset);
+      /* use offsets for shader_in and shared memory */
       nir_variable_mode modes = (nir_variable_mode)(
       nir_variable_mode modes = (nir_variable_mode)(
-         nir_var_mem_global |
+         nir_var_shader_in |
          nir_var_mem_shared);
          nir_var_mem_shared);
+      NIR_PASS_V(nir, nir_lower_explicit_io, modes, nir_address_format_32bit_offset);
+
+      /* use global format for global memory */
       nir_address_format format = nir->info.cs.ptr_size == 64 ?
          nir_address_format_64bit_global : nir_address_format_32bit_global;
       nir_address_format format = nir->info.cs.ptr_size == 64 ?
          nir_address_format_64bit_global : nir_address_format_32bit_global;
-      NIR_PASS_V(nir, nir_lower_explicit_io, modes, format);
+      NIR_PASS_V(nir, nir_lower_explicit_io, nir_var_mem_global, format);
 
       NIR_PASS_V(nir, nir_lower_system_values);
       if (compiler_options->lower_int64_options)
 
       NIR_PASS_V(nir, nir_lower_system_values);
       if (compiler_options->lower_int64_options)