[Piglit] [PATCH 2/2] arb_program_interface_query: add array to location test
Tapani Pälli
tapani.palli at intel.com
Fri Feb 27 01:32:57 PST 2015
Patch adds array to GetProgramResourceLocation test and 3 subtests
for invalid indexing of array. Case 2 fails on Nvidia GTX 660
(binary driver version 331.38).
Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
---
.../resource-location.c | 35 +++++++++++++++++-----
1 file changed, 28 insertions(+), 7 deletions(-)
diff --git a/tests/spec/arb_program_interface_query/resource-location.c b/tests/spec/arb_program_interface_query/resource-location.c
index b9caded..3bb6547 100644
--- a/tests/spec/arb_program_interface_query/resource-location.c
+++ b/tests/spec/arb_program_interface_query/resource-location.c
@@ -103,11 +103,12 @@ static const char fs_text[] =
"#extension GL_ARB_explicit_attrib_location : require\n"
"#extension GL_ARB_explicit_uniform_location : require\n"
"layout (location = 9) uniform vec4 color;\n"
+ "layout (location = 1) uniform float array[4];\n"
"layout (location = 1) out vec4 output0;\n"
"layout (location = 0) out vec4 output1;\n"
"void main() {\n"
- "output0 = color;\n"
- "output1 = color;\n"
+ "output0 = color * array[2];\n"
+ "output1 = color * array[3];\n"
"}";
static const char vs_subroutine_text[] =
@@ -415,12 +416,32 @@ piglit_init(int argc, char **argv)
pass = false;
}
+ /* Test 3 illegal array cases referenced in the spec as 'bug 9254'. */
+ if (glGetProgramResourceLocation(prog, GL_UNIFORM, "array[+1]") != -1) {
+ piglit_report_subtest_result(PIGLIT_FAIL, "array case 1");
+ pass = false;
+ }
+
+ if (glGetProgramResourceLocation(prog, GL_UNIFORM, "array[01]") != -1) {
+ piglit_report_subtest_result(PIGLIT_FAIL, "array case 2");
+ pass = false;
+ }
+
+ if (glGetProgramResourceLocation(prog, GL_UNIFORM, "array[ 0]") != -1) {
+ piglit_report_subtest_result(PIGLIT_FAIL, "array case 3");
+ pass = false;
+ }
+
/* Valid inputs. */
- validate_location(prog, GL_UNIFORM, "color", 9);
- validate_location(prog, GL_PROGRAM_INPUT, "input0", 3);
- validate_location(prog, GL_PROGRAM_INPUT, "input1", 6);
- validate_location(prog, GL_PROGRAM_OUTPUT, "output0", 1);
- validate_location(prog, GL_PROGRAM_OUTPUT, "output1", 0);
+ validate_location(prog, GL_UNIFORM, "color", 9);
+ validate_location(prog, GL_PROGRAM_INPUT, "input0", 3);
+ validate_location(prog, GL_PROGRAM_INPUT, "input1", 6);
+ validate_location(prog, GL_PROGRAM_OUTPUT, "output0", 1);
+ validate_location(prog, GL_PROGRAM_OUTPUT, "output1", 0);
+
+ validate_location(prog, GL_UNIFORM, "array", 1);
+ validate_location(prog, GL_UNIFORM, "array[0]", 1);
+ validate_location(prog, GL_UNIFORM, "array[1]", 2);
if (!piglit_check_gl_error(GL_NO_ERROR))
piglit_report_result(PIGLIT_FAIL);
--
2.1.0
More information about the Piglit
mailing list