summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2012-04-27 13:37:14 -0700
committerEric Anholt <eric@anholt.net>2012-05-14 14:33:09 -0700
commit76520b77734daa59691d70864dfea9944aa69842 (patch)
tree463752aed9240bdc99e67cfe2331059f446e5c1d
parent35be5900b426e18e785a69b177bd93d5e8e27e6d (diff)
GL_ARB_uniform_buffer_object: Test that initializers are illegal.
-rw-r--r--tests/spec/arb_uniform_buffer_object/compiler/uniform-block-initializer.frag35
1 files changed, 35 insertions, 0 deletions
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 000000000..85adebbfe
--- /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;
+}