From: Ian Romanick <[email protected]>

This is required by OpenGL ES 3.0 and desktop OpenGL 4.2.  Previous
version were ambiguous.

Signed-off-by: Ian Romanick <[email protected]>
Cc: Frank Henigman <[email protected]>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=59688
---
 tests/shaders/glsl-uniform-out-of-bounds-2.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/tests/shaders/glsl-uniform-out-of-bounds-2.c 
b/tests/shaders/glsl-uniform-out-of-bounds-2.c
index db46a1e..2fc5c86 100644
--- a/tests/shaders/glsl-uniform-out-of-bounds-2.c
+++ b/tests/shaders/glsl-uniform-out-of-bounds-2.c
@@ -80,9 +80,26 @@ piglit_init(int argc, char **argv)
                GLchar name[99];
                GLint num_active_elements;
                GLenum type;
+               char *bracket;
+
                glGetActiveUniform(prog, k, ARRAY_SIZE(name), NULL,
                                   &num_active_elements,
                                   &type, name);
+
+               /* OpenGL 4.2 and OpenGL ES 3.0 require that the name returned
+                * for an array have "[0]" on the end.  Earlier versions make
+                * it optional.
+                */
+               bracket = strchr(name, '[');
+               if (bracket != NULL) {
+                       if (strncmp(bracket, "[0]", 3) != 0) {
+                               printf("FAIL: invalid uniform array element "
+                                      "returned: %s\n", name);
+                               pass = false;
+                       }
+                       *bracket = '\0';
+               }
+
                if (!((name[0] == 'v' || name[0] == 'm') && name[1] == 0))
                        continue;
                printf("array '%s' active elements %d\n",
-- 
1.7.11.7

_______________________________________________
Piglit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to