From 4ea916f70478605baa57cbb7af77a73e25c05b24 Mon Sep 17 00:00:00 2001 From: Iago Toral Quiroga Date: Thu, 22 Sep 2022 08:41:50 +0200 Subject: [PATCH] broadcom/compiler: don't apply robust buffer access to shared variables MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This feature is only concerned with buffers bound through a descriptor set. We are still keeping the code for this (disabled by default) since it may be useful for debugging some scenarios. Reviewed-by: Alejandro PiƱeiro Part-of: --- .../compiler/v3d_nir_lower_robust_buffer_access.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/broadcom/compiler/v3d_nir_lower_robust_buffer_access.c b/src/broadcom/compiler/v3d_nir_lower_robust_buffer_access.c index 4c61d59eb70..a09cff6bfe9 100644 --- a/src/broadcom/compiler/v3d_nir_lower_robust_buffer_access.c +++ b/src/broadcom/compiler/v3d_nir_lower_robust_buffer_access.c @@ -24,6 +24,12 @@ #include "compiler/v3d_compiler.h" #include "compiler/nir/nir_builder.h" +/* Vulkan's robustBufferAccess feature is only concerned with buffers that are + * bound through descriptor sets, so shared memory is not included, but it may + * be useful to enable this for debugging. + */ +const bool robust_shared_enabled = false; + static void rewrite_offset(nir_builder *b, nir_intrinsic_instr *instr, @@ -172,8 +178,11 @@ lower_instr(nir_builder *b, nir_instr *instr, void *_state) case nir_intrinsic_shared_atomic_xor: case nir_intrinsic_shared_atomic_exchange: case nir_intrinsic_shared_atomic_comp_swap: - lower_shared(c, b, intr); - return true; + if (robust_shared_enabled) { + lower_shared(c, b, intr); + return true; + } + return false; default: return false; }