[Piglit] [PATCH] ARB_explicit_uniform_location: test overlap location with unused uniform

Tapani Pälli tapani.palli at intel.com
Mon Mar 17 06:05:55 PDT 2014


This test tests overlapping uniform locations across shader stages
against unused uniform.

Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
---
 .../unused-uniform-reserve-location.shader_test    | 34 ++++++++++++++++++++++
 1 file changed, 34 insertions(+)
 create mode 100644 tests/spec/arb_explicit_uniform_location/linker/unused-uniform-reserve-location.shader_test

diff --git a/tests/spec/arb_explicit_uniform_location/linker/unused-uniform-reserve-location.shader_test b/tests/spec/arb_explicit_uniform_location/linker/unused-uniform-reserve-location.shader_test
new file mode 100644
index 0000000..2489e4e
--- /dev/null
+++ b/tests/spec/arb_explicit_uniform_location/linker/unused-uniform-reserve-location.shader_test
@@ -0,0 +1,34 @@
+#
+# Tests overlapping uniform location among 2 shader stages, both shaders
+# define same explicit location. This test tests specifically the overlap
+# with unused uniform. Uniform 'array' gets optimized away because it is
+# not used but it needs to consume specified 128 locations.
+#
+# The GL_ARB_explicit_uniform_location spec says:
+#     "No two default-block uniform variables in the program can have the
+#     same location, even if they are unused, otherwise a compiler or linker
+#     error will be generated."
+
+[require]
+GLSL >= 1.20
+GL_ARB_explicit_uniform_location
+
+[vertex shader]
+#extension GL_ARB_explicit_uniform_location: require
+layout(location = 0) uniform float array[128];
+vec4 vertex;
+void main()
+{
+  gl_Position = vertex;
+}
+
+[fragment shader]
+#extension GL_ARB_explicit_uniform_location: require
+layout(location = 127) uniform vec4 color;
+void main()
+{
+  gl_FragColor = color;
+}
+
+[test]
+link error
-- 
1.8.3.1



More information about the Piglit mailing list