From f99e9335e2ca46ec8ead00b63e79f800fec75592 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Thu, 27 Jul 2017 17:12:09 +0200 Subject: [PATCH] st/glsl_to_tgsi: fix getting the image type for array of structs MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Since array splitting for AoA is disabled, we have to retrieve the type of the first non-array type when an array of images is declared inside a structure. Otherwise, it will hit an assert in glsl_type::sampler_index() because it expects either a sampler or an image type. This fixes a regression in the following piglit test: arb_bindless_texture/compiler/images/arrays-of-struct.frag Fixes: 57165f2ef8 ("glsl: disable array splitting for AoA") Cc: 17.2 Signed-off-by: Samuel Pitoiset Reviewed-by: Marek Olšák --- src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp index baa835924bc..3983fe75b8d 100644 --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp @@ -3790,7 +3790,7 @@ get_image_qualifiers(ir_dereference *ir, const glsl_type **type, for (unsigned i = 0; i < struct_type->length; i++) { if (!strcmp(struct_type->fields.structure[i].name, deref_record->field)) { - *type = struct_type->fields.structure[i].type; + *type = struct_type->fields.structure[i].type->without_array(); *memory_coherent = struct_type->fields.structure[i].memory_coherent; *memory_volatile = -- 2.30.2