[Mesa-stable] [Mesa-dev] [PATCH] st/glsl_to_tgsi: fix getting the image type for array of structs
Marek Olšák
maraeo at gmail.com
Thu Jul 27 20:50:54 UTC 2017
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Marek
On Thu, Jul 27, 2017 at 5:12 PM, Samuel Pitoiset
<samuel.pitoiset at gmail.com> wrote:
> 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 <mesa-stable at lists.freedesktop.org>
> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
> ---
> 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 baa835924b..3983fe75b8 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.13.3
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-stable
mailing list