[Piglit] [PATCH] glsl-es-1.00: add constant-index-expression indexing test with struct

Tapani Pälli tapani.palli at intel.com
Fri Mar 27 00:27:14 PDT 2015


This test fails with current Mesa HEAD (6264348), see bug
https://bugs.freedesktop.org/show_bug.cgi?id=84225.

Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
---
 .../struct-sampler-array-index.frag                | 42 ++++++++++++++++++++++
 1 file changed, 42 insertions(+)
 create mode 100644 tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/struct-sampler-array-index.frag

diff --git a/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/struct-sampler-array-index.frag b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/struct-sampler-array-index.frag
new file mode 100644
index 0000000..122a8a4
--- /dev/null
+++ b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/struct-sampler-array-index.frag
@@ -0,0 +1,42 @@
+/* [config]
+ * expect_result: pass
+ * glsl_version: 1.00
+ * [end config]
+ *
+ * From "Appendix A" of the GLSL ES 1.00 spec:
+ *
+ *     "GLSL ES 1.00 supports both arrays of samplers and arrays of
+ *      structures which contain samplers. In both these cases, for
+ *      ES 2.0, support for indexing with a constant-index-expression
+ *      is mandated"
+ *
+ * For additional complexity this test has array of structures
+ * that has array of samplers.
+ *
+ */
+#version 100
+
+struct s_t
+{
+	sampler2D array[1];
+	sampler2D foo;
+};
+
+uniform s_t array[1];
+
+void main()
+{
+	highp vec4 color;
+
+	// case 1, sampler in array of structs
+	for (int i = 0; i < 2; i++) {
+		color += texture2D(array[i].foo, vec2(0.0));
+	}
+
+	// case 2, index sampler array in array of structs
+	for (int i = 0; i < 2; i++) {
+		color += texture2D(array[i].array[i], vec2(0.0));
+	}
+
+	gl_FragColor = color;
+}
-- 
2.1.0



More information about the Piglit mailing list