From 3ad52501dc28a4286c97ed386419f7b617e093af Mon Sep 17 00:00:00 2001 From: Timothy Arceri Date: Tue, 13 Feb 2018 09:42:48 +1100 Subject: [PATCH] ac/nir_to_llvm: fix image size for arrays of arrays MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Fixes cts test: KHR-GL44.shader_image_size.advanced-changeSize Reviewed-by: Marek Olšák --- src/amd/common/ac_nir_to_llvm.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c index b5575d5..dc55117 100644 --- a/src/amd/common/ac_nir_to_llvm.c +++ b/src/amd/common/ac_nir_to_llvm.c @@ -3786,12 +3786,10 @@ static LLVMValueRef visit_image_size(struct ac_nir_context *ctx, { LLVMValueRef res; const nir_variable *var = instr->variables[0]->var; - const struct glsl_type *type = instr->variables[0]->var->type; - bool da = glsl_sampler_type_is_array(var->type) || - glsl_get_sampler_dim(var->type) == GLSL_SAMPLER_DIM_CUBE || - glsl_get_sampler_dim(var->type) == GLSL_SAMPLER_DIM_3D; - if(instr->variables[0]->deref.child) - type = instr->variables[0]->deref.child->type; + const struct glsl_type *type = glsl_without_array(var->type); + bool da = glsl_sampler_type_is_array(type) || + glsl_get_sampler_dim(type) == GLSL_SAMPLER_DIM_CUBE || + glsl_get_sampler_dim(type) == GLSL_SAMPLER_DIM_3D; if (glsl_get_sampler_dim(type) == GLSL_SAMPLER_DIM_BUF) return get_buffer_size(ctx, -- 2.7.4