summaryrefslogtreecommitdiffstats
path: root/src/compiler/glsl
diff options
context:
space:
mode:
authorCaio Marcelo de Oliveira Filho <[email protected]>2019-06-19 10:00:39 -0700
committerCaio Marcelo de Oliveira Filho <[email protected]>2019-06-19 12:50:39 -0700
commitd7ea433a5fc13ef1f622fddf01afb1f1de7bc6b4 (patch)
tree981036a4d8044a154043fd90ea06dc11591818dc /src/compiler/glsl
parent10e8d466011076a0453368cb976d9f6b06af0e94 (diff)
glsl/nir: Fix getting the sampler dim when arrays are involved
Unwrap any array in the variable type so we can get the sampler dim. This fixes piglit test spec/arb_arrays_of_arrays/execution/image_store/basic-imageStore-const-uniform-index.shader_test. Fixes: f2d0e48ddc7 "glsl/nir: Add optimization pass for access flags" Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/compiler/glsl')
-rw-r--r--src/compiler/glsl/gl_nir_opt_access.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/compiler/glsl/gl_nir_opt_access.c b/src/compiler/glsl/gl_nir_opt_access.c
index 1affeb3881e..7f8672faf13 100644
--- a/src/compiler/glsl/gl_nir_opt_access.c
+++ b/src/compiler/glsl/gl_nir_opt_access.c
@@ -70,7 +70,8 @@ gather_intrinsic(struct access_state *state, nir_intrinsic_instr *instr)
* image types use textures which cannot alias with buffer objects.
* Therefore we have to group buffer samplers together with SSBO's.
*/
- if (glsl_get_sampler_dim(var->type) == GLSL_SAMPLER_DIM_BUF)
+ if (glsl_get_sampler_dim(glsl_without_array(var->type)) ==
+ GLSL_SAMPLER_DIM_BUF)
state->buffers_written = true;
else
state->images_written = true;