From 956e4b2d371736e073542cf8556f0c972c197989 Mon Sep 17 00:00:00 2001 From: Caio Marcelo de Oliveira Filho Date: Fri, 10 Jan 2020 16:25:02 -0800 Subject: [PATCH] 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 Tested-by: Marge Bot Part-of: --- 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 9591285..1547bf0 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 81175eb..37fbf35 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 fa39116..5ee7587 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 3d0bec3..20f32b5 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 2dbb2ea..e6bd5f9 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, -- 2.7.4