[1/2] arb_program_interface_query: add more arrays of arrays tests

Message ID 1435969060-20918-1-git-send-email-t_arceri@yahoo.com.au
State New
Headers show

Commit Message

'Timothy Arceri' via Patchwork Forward July 4, 2015, 12:17 a.m.
From the ARB_program_interface_query spec (issue 8):

   We only accept entries of the form "a[2][1][0]" or
   "a[2][1]", which is consistent with the existing rules that only allow
   applications to omit the last index of a bottom-level array that has
   been rolled up.

Test results: Nvidia GeForce 840M - NVIDIA 346.47: pass

Cc: Tapani Pälli <tapani.palli@intel.com>
---
 tests/spec/arb_program_interface_query/common.h    |  9 ++++++++
 .../getprogramresourceindex.c                      | 26 ++++++++++++++++++++++
 2 files changed, 35 insertions(+)

Patch hide | download patch | download mbox

diff --git a/tests/spec/arb_program_interface_query/common.h b/tests/spec/arb_program_interface_query/common.h
index e083a6e..39e5f24 100755
--- a/tests/spec/arb_program_interface_query/common.h
+++ b/tests/spec/arb_program_interface_query/common.h
@@ -63,6 +63,15 @@  static const char vs_aofa[] =
 	"	gl_Position = vs_input2[0][0] + vs_input3[0][0][0];\n"
 	"}";
 
+static const char vs_aofa2[] =
+	"#version 150\n"
+	"#extension GL_ARB_arrays_of_arrays : require\n"
+	"in vec4 vs_input2[2][2];\n"
+	"uniform vec4 vs_uni[2][2][2];\n"
+	"void main() {\n"
+	"	gl_Position = vs_input2[1][0] + vs_uni[1][0][1];\n"
+	"}";
+
 static const char vs_std[] =
 	"#version 150\n"
 	"struct vs_struct {\n"
diff --git a/tests/spec/arb_program_interface_query/getprogramresourceindex.c b/tests/spec/arb_program_interface_query/getprogramresourceindex.c
index 889b5e1..bc865e5 100755
--- a/tests/spec/arb_program_interface_query/getprogramresourceindex.c
+++ b/tests/spec/arb_program_interface_query/getprogramresourceindex.c
@@ -175,6 +175,32 @@  static const struct subtest_index_t index_subtests[] = {
  ST( vs_aofa,              GL_PROGRAM_INPUT,    "vs_input2[0][0]",  0, GL_NO_ERROR),
  ST( vs_aofa,              GL_PROGRAM_INPUT,    "vs_input2[1][0]", -1, GL_NO_ERROR),
  ST( vs_aofa,              GL_PROGRAM_INPUT,    "vs_input2[0][1]", -1, GL_NO_ERROR),
+ ST( vs_aofa,              GL_PROGRAM_INPUT,    "vs_input2[1][1]", -1, GL_NO_ERROR),
+ ST( vs_aofa,              GL_PROGRAM_INPUT,          "vs_input3", -1, GL_NO_ERROR),
+ ST( vs_aofa,              GL_PROGRAM_INPUT,       "vs_input3[0]", -1, GL_NO_ERROR),
+ ST( vs_aofa,              GL_PROGRAM_INPUT,    "vs_input3[0][0]",  0, GL_NO_ERROR),
+ ST( vs_aofa,              GL_PROGRAM_INPUT, "vs_input3[0][0][0]",  0, GL_NO_ERROR),
+ ST( vs_aofa,              GL_PROGRAM_INPUT,"vs_input3[0][0][00]", -1, GL_NO_ERROR),
+ ST( vs_aofa,              GL_PROGRAM_INPUT,"vs_input3[0][00][0]", -1, GL_NO_ERROR),
+ ST( vs_aofa,              GL_PROGRAM_INPUT,"vs_input3[00][0][0]", -1, GL_NO_ERROR),
+ ST( vs_aofa,              GL_PROGRAM_INPUT, "vs_input3[0][0][1]", -1, GL_NO_ERROR),
+ ST( vs_aofa,              GL_PROGRAM_INPUT, "vs_input3[0][1][0]", -1, GL_NO_ERROR),
+ ST( vs_aofa,              GL_PROGRAM_INPUT, "vs_input3[1][0][0]", -1, GL_NO_ERROR),
+ ST( vs_aofa,              GL_PROGRAM_INPUT, "vs_input3[1][0][1]", -1, GL_NO_ERROR),
+ ST( vs_aofa,              GL_PROGRAM_INPUT, "vs_input3[1][1][0]", -1, GL_NO_ERROR),
+ ST( vs_aofa,              GL_PROGRAM_INPUT, "vs_input3[1][1][1]", -1, GL_NO_ERROR),
+ ST( vs_aofa2,                   GL_UNIFORM,             "vs_uni", -1, GL_NO_ERROR),
+ ST( vs_aofa2,                   GL_UNIFORM,          "vs_uni[1]", -1, GL_NO_ERROR),
+ ST( vs_aofa2,                   GL_UNIFORM,          "vs_uni[0]", -1, GL_NO_ERROR),
+ ST( vs_aofa2,                   GL_UNIFORM,       "vs_uni[0][0]", -1, GL_NO_ERROR),
+ ST( vs_aofa2,                   GL_UNIFORM,       "vs_uni[1][0]",  0, GL_NO_ERROR),
+ ST( vs_aofa2,                   GL_UNIFORM,    "vs_uni[0][0][0]", -1, GL_NO_ERROR),
+ ST( vs_aofa2,                   GL_UNIFORM,    "vs_uni[0][0][1]", -1, GL_NO_ERROR),
+ ST( vs_aofa2,                   GL_UNIFORM,    "vs_uni[0][1][0]", -1, GL_NO_ERROR),
+ ST( vs_aofa2,                   GL_UNIFORM,    "vs_uni[1][0][0]",  0, GL_NO_ERROR),
+ ST( vs_aofa2,                   GL_UNIFORM,    "vs_uni[1][0][1]", -1, GL_NO_ERROR),
+ ST( vs_aofa2,                   GL_UNIFORM,    "vs_uni[1][1][0]", -1, GL_NO_ERROR),
+ ST( vs_aofa2,                   GL_UNIFORM,    "vs_uni[1][1][1]", -1, GL_NO_ERROR),
  ST(  vs_sub,          GL_VERTEX_SUBROUTINE,                "vss",  0, GL_NO_ERROR),
  ST(vs_empty, GL_TRANSFORM_FEEDBACK_VARYING,      "gl_NextBuffer", -1, GL_NO_ERROR),
  ST(vs_empty, GL_TRANSFORM_FEEDBACK_VARYING, "gl_SkipComponents1", -1, GL_NO_ERROR),