From 676869e1d4bb1660430fcdb99443238a7de50eb8 Mon Sep 17 00:00:00 2001
From: Timothy Arceri <tarceri@itsqueeze.com>
Date: Mon, 10 Feb 2020 11:22:32 +1100
Subject: [PATCH] glsl: fix gl_nir_set_uniform_initializers() for image arrays
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The if was incorrectly checking for an image type on what could
be an array of images. Here we change it to use the type stored
in uniform storage which has already been stripped of arrays,
this is what the above code for samplers does also.

Fixes: 2bf91733fcb5 ("nir/linker: Set the uniform initial values")

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3757>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3757>
---
 src/compiler/glsl/gl_nir_link_uniform_initializers.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/compiler/glsl/gl_nir_link_uniform_initializers.c b/src/compiler/glsl/gl_nir_link_uniform_initializers.c
index 1c4529c930708..752eedb63aa06 100644
--- a/src/compiler/glsl/gl_nir_link_uniform_initializers.c
+++ b/src/compiler/glsl/gl_nir_link_uniform_initializers.c
@@ -87,7 +87,7 @@ set_opaque_binding(struct set_opaque_binding_closure *data,
                   storage->storage[i].i;
             }
          }
-      } else if (glsl_type_is_image(type)) {
+      } else if (glsl_type_is_image(storage->type)) {
          for (unsigned i = 0; i < elements; i++) {
             const unsigned index = storage->opaque[sh].index + i;
 
-- 
GitLab