From: Ian Romanick <ian.d.roman...@intel.com>

GL_MESA_shader_integer_functions does not add the precise qualifier, so
all of these tests should fail.

    cd tests/spec/mesa_shader_integer_functions/compiler
    cp -a ../../arb_gpu_shader5/compiler/precise-qualifier .
    cd precise-qualifier
    for i in *; do
        sed --in-place -e 's/1[.]50/1.30/g;s/150/130/g' \
            -e 's/ARB_gpu_shader5/MESA_shader_integer_functions/g' \
            -e 's/expect_result: pass/expect_result: fail/' \
            $i
    done

Signed-off-by: Ian Romanick <ian.d.roman...@intel.com>
---
 .../compiler/precise-qualifier/precise-01.vert     | 12 +++++++++++
 .../compiler/precise-qualifier/precise-02.vert     | 12 +++++++++++
 .../compiler/precise-qualifier/precise-03.vert     | 14 +++++++++++++
 .../compiler/precise-qualifier/precise-04.vert     | 14 +++++++++++++
 .../compiler/precise-qualifier/precise-05.vert     | 12 +++++++++++
 .../compiler/precise-qualifier/precise-06.vert     | 14 +++++++++++++
 .../compiler/precise-qualifier/precise-07.vert     | 16 +++++++++++++++
 .../compiler/precise-qualifier/precise-08.vert     | 14 +++++++++++++
 .../compiler/precise-qualifier/precise-09.vert     | 15 ++++++++++++++
 .../compiler/precise-qualifier/precise-10.vert     | 14 +++++++++++++
 .../compiler/precise-qualifier/precise-11.vert     | 15 ++++++++++++++
 .../compiler/precise-qualifier/precise-12.vert     | 23 ++++++++++++++++++++++
 .../compiler/precise-qualifier/precise-13.vert     | 16 +++++++++++++++
 13 files changed, 191 insertions(+)
 create mode 100644 
tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-01.vert
 create mode 100644 
tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-02.vert
 create mode 100644 
tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-03.vert
 create mode 100644 
tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-04.vert
 create mode 100644 
tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-05.vert
 create mode 100644 
tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-06.vert
 create mode 100644 
tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-07.vert
 create mode 100644 
tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-08.vert
 create mode 100644 
tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-09.vert
 create mode 100644 
tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-10.vert
 create mode 100644 
tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-11.vert
 create mode 100644 
tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-12.vert
 create mode 100644 
tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-13.vert

diff --git 
a/tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-01.vert
 
b/tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-01.vert
new file mode 100644
index 0000000..db5934e
--- /dev/null
+++ 
b/tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-01.vert
@@ -0,0 +1,12 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.30
+// require_extensions: GL_MESA_shader_integer_functions
+// [end config]
+
+// test that `precise` is allowed on globals.
+
+#version 130
+#extension GL_MESA_shader_integer_functions: require
+
+precise vec4 x;
diff --git 
a/tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-02.vert
 
b/tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-02.vert
new file mode 100644
index 0000000..54b0ca8
--- /dev/null
+++ 
b/tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-02.vert
@@ -0,0 +1,12 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.30
+// require_extensions: GL_MESA_shader_integer_functions
+// [end config]
+
+// test that `precise` is allowed on shader outputs.
+
+#version 130
+#extension GL_MESA_shader_integer_functions: require
+
+precise out vec4 x;
diff --git 
a/tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-03.vert
 
b/tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-03.vert
new file mode 100644
index 0000000..a07cde7
--- /dev/null
+++ 
b/tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-03.vert
@@ -0,0 +1,14 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.30
+// require_extensions: GL_MESA_shader_integer_functions
+// [end config]
+
+// test that `precise` is allowed on local variables.
+
+#version 130
+#extension GL_MESA_shader_integer_functions: require
+
+void foo() {
+       precise float x;
+}
diff --git 
a/tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-04.vert
 
b/tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-04.vert
new file mode 100644
index 0000000..5e2a485
--- /dev/null
+++ 
b/tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-04.vert
@@ -0,0 +1,14 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.30
+// require_extensions: GL_MESA_shader_integer_functions
+// [end config]
+
+// test that `precise` is allowed as a parameter qualifier.
+
+#version 130
+#extension GL_MESA_shader_integer_functions: require
+
+void foo(precise out float x) {
+       x = 1;
+}
diff --git 
a/tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-05.vert
 
b/tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-05.vert
new file mode 100644
index 0000000..a989770
--- /dev/null
+++ 
b/tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-05.vert
@@ -0,0 +1,12 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.30
+// require_extensions: GL_MESA_shader_integer_functions
+// [end config]
+
+// test that a redeclaration of a built-in variable at global scope is allowed.
+
+#version 130
+#extension GL_MESA_shader_integer_functions: require
+
+precise gl_Position;
diff --git 
a/tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-06.vert
 
b/tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-06.vert
new file mode 100644
index 0000000..0073b9f
--- /dev/null
+++ 
b/tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-06.vert
@@ -0,0 +1,14 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.30
+// require_extensions: GL_MESA_shader_integer_functions
+// [end config]
+
+// test that a straightforward redeclaration of a user-defined variable
+// at global scope is allowed.
+
+#version 130
+#extension GL_MESA_shader_integer_functions: require
+
+vec4 x;
+precise x;
diff --git 
a/tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-07.vert
 
b/tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-07.vert
new file mode 100644
index 0000000..16cdbe5
--- /dev/null
+++ 
b/tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-07.vert
@@ -0,0 +1,16 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.30
+// require_extensions: GL_MESA_shader_integer_functions
+// [end config]
+
+// notable departure from the `invariant` qualifier rules: it seems reasonable
+// to have local precise redeclarations be allowed.
+
+#version 130
+#extension GL_MESA_shader_integer_functions: require
+
+void foo() {
+       vec4 x;
+       precise x;
+}
diff --git 
a/tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-08.vert
 
b/tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-08.vert
new file mode 100644
index 0000000..4af457d
--- /dev/null
+++ 
b/tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-08.vert
@@ -0,0 +1,14 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.30
+// require_extensions: GL_MESA_shader_integer_functions
+// [end config]
+
+// test that `precise inout` is allowed on a function parameter
+
+#version 130
+#extension GL_MESA_shader_integer_functions: require
+
+void foo(precise inout float x) {
+       x += 1;
+}
diff --git 
a/tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-09.vert
 
b/tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-09.vert
new file mode 100644
index 0000000..f7a2d86
--- /dev/null
+++ 
b/tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-09.vert
@@ -0,0 +1,15 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.30
+// require_extensions: GL_MESA_shader_integer_functions
+// [end config]
+
+// test that precise redeclarations of function parameters are allowed.
+
+#version 130
+#extension GL_MESA_shader_integer_functions: require
+
+void foo(out float x) {
+       precise x;
+       x = 1;
+}
diff --git 
a/tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-10.vert
 
b/tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-10.vert
new file mode 100644
index 0000000..28b0b67
--- /dev/null
+++ 
b/tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-10.vert
@@ -0,0 +1,14 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.30
+// require_extensions: GL_MESA_shader_integer_functions
+// [end config]
+
+// test that precise redeclaration after the first use of a variable is not 
allowed.
+
+#version 130
+#extension GL_MESA_shader_integer_functions: require
+
+float x;
+x = 1;
+precise x;     /* redeclaration after use */
diff --git 
a/tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-11.vert
 
b/tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-11.vert
new file mode 100644
index 0000000..1139346
--- /dev/null
+++ 
b/tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-11.vert
@@ -0,0 +1,15 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.30
+// require_extensions: GL_MESA_shader_integer_functions
+// [end config]
+
+// test that a precise redeclaration of a parameter after use is not allowed.
+
+#version 130
+#extension GL_MESA_shader_integer_functions: require
+
+void foo(out x) {
+       x = 1;
+       precise x;      /* redeclaration after use */
+}
diff --git 
a/tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-12.vert
 
b/tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-12.vert
new file mode 100644
index 0000000..6c78493
--- /dev/null
+++ 
b/tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-12.vert
@@ -0,0 +1,23 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.30
+// require_extensions: GL_MESA_shader_integer_functions
+// [end config]
+
+// test that a precise redeclaration of a variable from an enclosing scope is 
not
+// allowed. this seems unreasonable.
+
+// if we were to support this, it seems there would be two options for the 
semantics
+// to impose:
+//     - have `precise` only apply to uses of x within the function.
+//     - have x globally marked precise from this point on, and apply the usual
+//       no-redeclaration-after-first-use rules, in program order.
+
+#version 130
+#extension GL_MESA_shader_integer_functions: require
+
+float x;
+
+void foo() {
+       precise x;      /* seems unreasonable */
+}
diff --git 
a/tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-13.vert
 
b/tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-13.vert
new file mode 100644
index 0000000..af4530c
--- /dev/null
+++ 
b/tests/spec/mesa_shader_integer_functions/compiler/precise-qualifier/precise-13.vert
@@ -0,0 +1,16 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.30
+// require_extensions: GL_MESA_shader_integer_functions
+// [end config]
+
+// test that the precise qualifier must appear first with multiple 
qualifications,
+// without ARB_shading_language_420pack.
+
+// the spec says the order of qualification must be:
+//     precise-qualifier invariant-qualifier interpolation-qualifier ...
+
+#version 130
+#extension GL_MESA_shader_integer_functions: require
+
+invariant precise vec4 x;
-- 
2.5.5

_______________________________________________
Piglit mailing list
Piglit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to