nir/lower_variable_initializers: implement non-scoped barrier path
authorIago Toral Quiroga <itoral@igalia.com>
Tue, 30 Aug 2022 07:23:33 +0000 (09:23 +0200)
committerIago Toral Quiroga <itoral@igalia.com>
Wed, 31 Aug 2022 05:25:00 +0000 (07:25 +0200)
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18312>

src/compiler/nir/nir_lower_variable_initializers.c

index ba0e7ba..384bdef 100644 (file)
@@ -191,8 +191,12 @@ nir_zero_initialize_shared_memory(nir_shader *shader,
    }
    nir_pop_loop(&b, loop);
 
-   nir_scoped_barrier(&b, NIR_SCOPE_WORKGROUP, NIR_SCOPE_WORKGROUP,
-                      NIR_MEMORY_ACQ_REL, nir_var_mem_shared);
+   if (shader->options->use_scoped_barrier) {
+      nir_scoped_barrier(&b, NIR_SCOPE_WORKGROUP, NIR_SCOPE_WORKGROUP,
+                         NIR_MEMORY_ACQ_REL, nir_var_mem_shared);
+   } else {
+      nir_memory_barrier_shared(&b);
+   }
 
    nir_metadata_preserve(nir_shader_get_entrypoint(shader), nir_metadata_none);