summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Romanick <ian.d.romanick@intel.com>2018-08-28 13:00:52 -0700
committerIan Romanick <ian.d.romanick@intel.com>2018-08-29 18:36:40 -0700
commit3fb217de1f30c7fc2553d9f32979a887bea33a3a (patch)
tree0f5041eb0fa2f102aac566bcc19ad61fa0c536b8
parentc62214f1a688b8c971f0725ec18ead82994b1b44 (diff)
arb_fragment_shader_interlock: Simple compiler tests
Currently none of the negative tests produce the expected result on Mesa. There are other cases called out by the spec as things you cannot do, but it's not clear what the expected result is in those cases (compile- or link-time error, undefined rendering, GPU hang, house fire, etc.). Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
-rw-r--r--tests/spec/arb_fragment_shader_interlock/compiler/beginInvocationInterlock-endInvocationInterlock.frag15
-rw-r--r--tests/spec/arb_fragment_shader_interlock/compiler/beginInvocationInterlock-twice.frag23
-rw-r--r--tests/spec/arb_fragment_shader_interlock/compiler/endInvocationInterlock-before-beginInvocationInterlock.frag22
-rw-r--r--tests/spec/arb_fragment_shader_interlock/compiler/endInvocationInterlock-twice.frag23
4 files changed, 83 insertions, 0 deletions
diff --git a/tests/spec/arb_fragment_shader_interlock/compiler/beginInvocationInterlock-endInvocationInterlock.frag b/tests/spec/arb_fragment_shader_interlock/compiler/beginInvocationInterlock-endInvocationInterlock.frag
new file mode 100644
index 000000000..c2e948e25
--- /dev/null
+++ b/tests/spec/arb_fragment_shader_interlock/compiler/beginInvocationInterlock-endInvocationInterlock.frag
@@ -0,0 +1,15 @@
+// [config]
+// expect_result: pass
+// glsl_version: 4.20
+// require_extensions: GL_ARB_fragment_shader_interlock
+// check_link: true
+// [end config]
+
+#version 420
+#extension GL_ARB_fragment_shader_interlock: require
+
+void main()
+{
+ beginInvocationInterlockARB();
+ endInvocationInterlockARB();
+}
diff --git a/tests/spec/arb_fragment_shader_interlock/compiler/beginInvocationInterlock-twice.frag b/tests/spec/arb_fragment_shader_interlock/compiler/beginInvocationInterlock-twice.frag
new file mode 100644
index 000000000..52364ea12
--- /dev/null
+++ b/tests/spec/arb_fragment_shader_interlock/compiler/beginInvocationInterlock-twice.frag
@@ -0,0 +1,23 @@
+// [config]
+// expect_result: fail
+// glsl_version: 4.20
+// require_extensions: GL_ARB_fragment_shader_interlock
+// check_link: true
+// [end config]
+
+/* The GL_ARB_fragment_shader_interlock spec says:
+ *
+ * A compile- or link-time error will be generated if main() calls either
+ * function more than once, contains a call to one function without a
+ * matching call to the other, or calls endInvocationInterlockARB() before
+ * calling beginInvocationInterlockARB().
+ */
+#version 420
+#extension GL_ARB_fragment_shader_interlock: require
+
+void main()
+{
+ beginInvocationInterlockARB();
+ beginInvocationInterlockARB();
+ endInvocationInterlockARB();
+}
diff --git a/tests/spec/arb_fragment_shader_interlock/compiler/endInvocationInterlock-before-beginInvocationInterlock.frag b/tests/spec/arb_fragment_shader_interlock/compiler/endInvocationInterlock-before-beginInvocationInterlock.frag
new file mode 100644
index 000000000..9860050d0
--- /dev/null
+++ b/tests/spec/arb_fragment_shader_interlock/compiler/endInvocationInterlock-before-beginInvocationInterlock.frag
@@ -0,0 +1,22 @@
+// [config]
+// expect_result: fail
+// glsl_version: 4.20
+// require_extensions: GL_ARB_fragment_shader_interlock
+// check_link: true
+// [end config]
+
+/* The GL_ARB_fragment_shader_interlock spec says:
+ *
+ * A compile- or link-time error will be generated if main() calls either
+ * function more than once, contains a call to one function without a
+ * matching call to the other, or calls endInvocationInterlockARB() before
+ * calling beginInvocationInterlockARB().
+ */
+#version 420
+#extension GL_ARB_fragment_shader_interlock: require
+
+void main()
+{
+ endInvocationInterlockARB();
+ beginInvocationInterlockARB();
+}
diff --git a/tests/spec/arb_fragment_shader_interlock/compiler/endInvocationInterlock-twice.frag b/tests/spec/arb_fragment_shader_interlock/compiler/endInvocationInterlock-twice.frag
new file mode 100644
index 000000000..4ac44f38c
--- /dev/null
+++ b/tests/spec/arb_fragment_shader_interlock/compiler/endInvocationInterlock-twice.frag
@@ -0,0 +1,23 @@
+// [config]
+// expect_result: fail
+// glsl_version: 4.20
+// require_extensions: GL_ARB_fragment_shader_interlock
+// check_link: true
+// [end config]
+
+/* The GL_ARB_fragment_shader_interlock spec says:
+ *
+ * A compile- or link-time error will be generated if main() calls either
+ * function more than once, contains a call to one function without a
+ * matching call to the other, or calls endInvocationInterlockARB() before
+ * calling beginInvocationInterlockARB().
+ */
+#version 420
+#extension GL_ARB_fragment_shader_interlock: require
+
+void main()
+{
+ beginInvocationInterlockARB();
+ endInvocationInterlockARB();
+ endInvocationInterlockARB();
+}