[Mesa-dev] [PATCH] ac/nir_to_llvm: fix image size for arrays of arrays

Timothy Arceri tarceri at itsqueeze.com
Mon Feb 12 22:43:47 UTC 2018


Fixes cts test:
KHR-GL44.shader_image_size.advanced-changeSize
---
 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 15402694fc..c0a0da1656 100644
--- a/src/amd/common/ac_nir_to_llvm.c
+++ b/src/amd/common/ac_nir_to_llvm.c
@@ -3801,12 +3801,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.14.3



More information about the mesa-dev mailing list