From 7a994d92ff61acdd5177d4b786a7382df4ddd9e3 Mon Sep 17 00:00:00 2001 From: Konstantin Seurer Date: Sat, 10 Dec 2022 12:36:57 +0100 Subject: [PATCH] spirv: Add a debug option to force non uniform texture sampling Reviewed-by: Jason Ekstrand Reviewed-by: Bas Nieuwenhuizen Part-of: --- src/compiler/spirv/nir_spirv.h | 3 +++ src/compiler/spirv/spirv_to_nir.c | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/compiler/spirv/nir_spirv.h b/src/compiler/spirv/nir_spirv.h index 765a005..5c28bc2 100644 --- a/src/compiler/spirv/nir_spirv.h +++ b/src/compiler/spirv/nir_spirv.h @@ -110,6 +110,9 @@ struct spirv_to_nir_options { const char *message); void *private_data; } debug; + + /* Force texture sampling to be non-uniform. */ + bool force_tex_non_uniform; }; bool gl_spirv_validation(const uint32_t *words, size_t word_count, diff --git a/src/compiler/spirv/spirv_to_nir.c b/src/compiler/spirv/spirv_to_nir.c index 41adaa1..5f60227 100644 --- a/src/compiler/spirv/spirv_to_nir.c +++ b/src/compiler/spirv/spirv_to_nir.c @@ -3104,6 +3104,9 @@ vtn_handle_texture(struct vtn_builder *b, SpvOp opcode, if (operands & SpvImageOperandsNontemporalMask) access |= ACCESS_STREAM_CACHE_POLICY; + if (sampler && b->options->force_tex_non_uniform) + access |= ACCESS_NON_UNIFORM; + if (sampled_val->propagated_non_uniform) access |= ACCESS_NON_UNIFORM; -- 2.7.4