[Piglit] [PATCH v2] Test that ES frag shader with invariant outputs compiles

Danylo Piliaiev danylo.piliaiev at gmail.com
Thu Jan 10 10:13:52 UTC 2019


In all GLSL ES versions output variables in fragment shader are allowed
to be invariant.

 From Section 4.6.1 ("The Invariant Qualifier") GLSL ES 1.00 spec:
 "Only the following variables may be declared as invariant:
   ...
   - Built-in special variables output from the fragment shader."

 From Section 4.6.1 ("The Invariant Qualifier") GLSL ES 3.00 spec:
 "Only variables output from a shader can be candidates for invariance."

v2: moved new tests to tests/spec/glsl-es folders

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107842

Signed-off-by: Danylo Piliaiev <danylo.piliaiev at globallogic.com>
---
 tests/spec/glsl-es-1.00/compiler/invariant.frag | 17 +++++++++++++++++
 tests/spec/glsl-es-3.00/compiler/invariant.frag | 15 +++++++++++++++
 2 files changed, 32 insertions(+)
 create mode 100644 tests/spec/glsl-es-1.00/compiler/invariant.frag
 create mode 100644 tests/spec/glsl-es-3.00/compiler/invariant.frag

diff --git a/tests/spec/glsl-es-1.00/compiler/invariant.frag b/tests/spec/glsl-es-1.00/compiler/invariant.frag
new file mode 100644
index 000000000..440d3dfb5
--- /dev/null
+++ b/tests/spec/glsl-es-1.00/compiler/invariant.frag
@@ -0,0 +1,17 @@
+// [config]
+// expect_result: pass
+// glsl_version: 1.00
+// [end config]
+
+/* From Section 4.6.1 ("The Invariant Qualifier") GLSL ES 1.00 spec:
+ *
+ *     "Only the following variables may be declared as invariant:
+ *      Built-in special variables output from the fragment shader."
+ */
+
+#version 100
+
+invariant gl_FragColor;
+invariant gl_FragData;
+
+void main() { }
diff --git a/tests/spec/glsl-es-3.00/compiler/invariant.frag b/tests/spec/glsl-es-3.00/compiler/invariant.frag
new file mode 100644
index 000000000..0b5002f9d
--- /dev/null
+++ b/tests/spec/glsl-es-3.00/compiler/invariant.frag
@@ -0,0 +1,15 @@
+// [config]
+// expect_result: pass
+// glsl_version: 3.00
+// [end config]
+
+/* From Section 4.6.1 ("The Invariant Qualifier") GLSL ES 3.00 spec:
+ *
+ *     "Only variables output from a shader can be candidates for invariance."
+ */
+
+#version 300 es
+
+invariant out highp vec4 test;
+
+void main() { }
-- 
2.20.1



More information about the Piglit mailing list