Mesa (master): nir, intel: Move use_scoped_memory_barrier to nir_options

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Feb 24 19:49:56 UTC 2020


Module: Mesa
Branch: master
Commit: 956e4b2d371736e073542cf8556f0c972c197989
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=956e4b2d371736e073542cf8556f0c972c197989

Author: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>
Date:   Fri Jan 10 16:25:02 2020 -0800

nir, intel: Move use_scoped_memory_barrier to nir_options

This option will be used later by GLSL, so move to a common struct.

Because nir_options is filled in the compiler instead of the Vulkan
driver, fix that up.  GLSL will ignore that for now.

Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3913>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3913>

---

 src/compiler/nir/nir.h            | 5 +++++
 src/compiler/spirv/nir_spirv.h    | 5 -----
 src/compiler/spirv/spirv_to_nir.c | 2 +-
 src/intel/compiler/brw_compiler.c | 3 ++-
 src/intel/vulkan/anv_pipeline.c   | 1 -
 5 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h
index 9591285f28f..1547bf0c641 100644
--- a/src/compiler/nir/nir.h
+++ b/src/compiler/nir/nir.h
@@ -2921,6 +2921,11 @@ typedef struct nir_shader_compiler_options {
     */
    bool has_imul24;
 
+   /* Whether to generate only scoped_memory_barrier intrinsics instead of the
+    * set of memory barrier intrinsics based on GLSL.
+    */
+   bool use_scoped_memory_barrier;
+
    /**
     * Is this the Intel vec4 backend?
     *
diff --git a/src/compiler/spirv/nir_spirv.h b/src/compiler/spirv/nir_spirv.h
index 81175ebf022..37fbf351bc9 100644
--- a/src/compiler/spirv/nir_spirv.h
+++ b/src/compiler/spirv/nir_spirv.h
@@ -67,11 +67,6 @@ struct spirv_to_nir_options {
     */
    bool frag_coord_is_sysval;
 
-   /* Whether to generate only scoped_memory_barrier intrinsics instead of the
-    * set of memory barrier intrinsics based on GLSL.
-    */
-   bool use_scoped_memory_barrier;
-
    struct spirv_supported_capabilities caps;
 
    /* Address format for various kinds of pointers. */
diff --git a/src/compiler/spirv/spirv_to_nir.c b/src/compiler/spirv/spirv_to_nir.c
index fa391168043..5ee75877e8b 100644
--- a/src/compiler/spirv/spirv_to_nir.c
+++ b/src/compiler/spirv/spirv_to_nir.c
@@ -3576,7 +3576,7 @@ void
 vtn_emit_memory_barrier(struct vtn_builder *b, SpvScope scope,
                         SpvMemorySemanticsMask semantics)
 {
-   if (b->options->use_scoped_memory_barrier) {
+   if (b->shader->options->use_scoped_memory_barrier) {
       vtn_emit_scoped_memory_barrier(b, scope, semantics);
       return;
    }
diff --git a/src/intel/compiler/brw_compiler.c b/src/intel/compiler/brw_compiler.c
index 3d0bec30dcf..20f32b552c0 100644
--- a/src/intel/compiler/brw_compiler.c
+++ b/src/intel/compiler/brw_compiler.c
@@ -47,7 +47,8 @@
    .vectorize_io = true,                                                      \
    .use_interpolated_input_intrinsics = true,                                 \
    .vertex_id_zero_based = true,                                              \
-   .lower_base_vertex = true
+   .lower_base_vertex = true,                                                 \
+   .use_scoped_memory_barrier = true
 
 #define COMMON_SCALAR_OPTIONS                                                 \
    .lower_to_scalar = true,                                                   \
diff --git a/src/intel/vulkan/anv_pipeline.c b/src/intel/vulkan/anv_pipeline.c
index 2dbb2eac0a7..e6bd5f903f8 100644
--- a/src/intel/vulkan/anv_pipeline.c
+++ b/src/intel/vulkan/anv_pipeline.c
@@ -160,7 +160,6 @@ anv_shader_compile_to_nir(struct anv_device *device,
    };
    struct spirv_to_nir_options spirv_options = {
       .frag_coord_is_sysval = true,
-      .use_scoped_memory_barrier = true,
       .caps = {
          .demote_to_helper_invocation = true,
          .derivative_group = true,



More information about the mesa-commit mailing list