[Piglit] [PATCH 4/8] GL_ARB_uniform_buffer_object: Test that initializers are illegal.

Eric Anholt eric at anholt.net
Tue May 1 11:08:13 PDT 2012


---
 .../compiler/uniform-block-initializer.frag        |   35 ++++++++++++++++++++
 1 file changed, 35 insertions(+)
 create mode 100644 tests/spec/arb_uniform_buffer_object/compiler/uniform-block-initializer.frag

diff --git a/tests/spec/arb_uniform_buffer_object/compiler/uniform-block-initializer.frag b/tests/spec/arb_uniform_buffer_object/compiler/uniform-block-initializer.frag
new file mode 100644
index 0000000..85adebb
--- /dev/null
+++ b/tests/spec/arb_uniform_buffer_object/compiler/uniform-block-initializer.frag
@@ -0,0 +1,35 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.20
+// require_extensions: GL_ARB_uniform_buffer_object
+// [end config]
+
+#version 120
+#extension GL_ARB_uniform_buffer_object: require
+
+/* From the GL_ARB_uniform_buffer_object spec:
+ *
+ *     "While uniforms in the default uniform block are updated with
+ *      glUniform* entry points and can have static initializers,
+ *      uniforms in named uniform blocks are not. Instead, uniform
+ *      block data is updated using the routines that update buffer
+ *      objects and can not use static initializers.
+ *
+ *      ...
+ *
+ *      (15) How are the values from static initializer values
+ *           propagated to a buffer object once it is attached?
+ *
+ *          Resolved: Static initialization values declared in a
+ *          shader mapped to a uniform buffer are disallowed by the
+ *          grammar and must be established through writes to the
+ *          uniform buffer."
+ */
+
+uniform a {
+	vec4 b = vec4(1.0);
+};
+
+vec4 foo(void) {
+	return b;
+}
-- 
1.7.10



More information about the Piglit mailing list