From: Timothy Arceri Date: Mon, 12 Feb 2018 22:42:48 +0000 (+1100) Subject: ac/nir_to_llvm: fix image size for arrays of arrays X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3ad52501dc28a4286c97ed386419f7b617e093af;p=mesa.git ac/nir_to_llvm: fix image size for arrays of arrays Fixes cts test: KHR-GL44.shader_image_size.advanced-changeSize Reviewed-by: Marek Olšák --- diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c index b5575d5753c..dc551172d98 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,