From e2f3cfead92dacbfd24c597034301c713775a138 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Tue, 22 Aug 2017 12:34:48 +0200 Subject: [PATCH] st/glsl_to_tgsi: fix getting the image type for array of structs (again) We want the type of the field, not of the struct. This fixes a regression in the following piglit test: arb_bindless_texture/compiler/images/arrays-of-struct.frag Fixes: 49d9286a3f ("glsl: stop copying struct and interface member names") Signed-off-by: Samuel Pitoiset Reviewed-by: Timothy Arceri --- src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp index 221dc101079..d12434101f3 100644 --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp @@ -3764,12 +3764,10 @@ get_image_qualifiers(ir_dereference *ir, const glsl_type **type, switch (ir->ir_type) { case ir_type_dereference_record: { ir_dereference_record *deref_record = ir->as_dereference_record(); - - *type = deref_record->type; - - const glsl_type *struct_type = - deref_record->record->type->without_array(); + const glsl_type *struct_type = deref_record->record->type; int fild_idx = deref_record->field_idx; + + *type = struct_type->fields.structure[fild_idx].type->without_array(); *memory_coherent = struct_type->fields.structure[fild_idx].memory_coherent; *memory_volatile = -- 2.30.2