[Piglit] [PATCH 1/2] Test that varyings can't be bools or structs
Paul Berry
stereotype441 at gmail.com
Wed Dec 19 08:30:51 PST 2012
---
.../qualifiers/varying-bool-prohibited.frag | 20 +++++++++++++++++++
.../qualifiers/varying-bool-prohibited.vert | 21 ++++++++++++++++++++
.../qualifiers/varying-bvec2-prohibited.frag | 20 +++++++++++++++++++
.../qualifiers/varying-bvec2-prohibited.vert | 21 ++++++++++++++++++++
.../qualifiers/varying-bvec3-prohibited.frag | 20 +++++++++++++++++++
.../qualifiers/varying-bvec3-prohibited.vert | 21 ++++++++++++++++++++
.../qualifiers/varying-bvec4-prohibited.frag | 20 +++++++++++++++++++
.../qualifiers/varying-bvec4-prohibited.vert | 21 ++++++++++++++++++++
.../qualifiers/varying-struct-prohibited.frag | 21 ++++++++++++++++++++
.../qualifiers/varying-struct-prohibited.vert | 22 +++++++++++++++++++++
.../compiler/qualifiers/in-bool-prohibited.frag | 20 +++++++++++++++++++
.../compiler/qualifiers/in-bvec2-prohibited.frag | 20 +++++++++++++++++++
.../compiler/qualifiers/in-bvec3-prohibited.frag | 20 +++++++++++++++++++
.../compiler/qualifiers/in-bvec4-prohibited.frag | 20 +++++++++++++++++++
.../compiler/qualifiers/in-struct-prohibited.frag | 21 ++++++++++++++++++++
.../compiler/qualifiers/out-bool-prohibited.vert | 22 +++++++++++++++++++++
.../compiler/qualifiers/out-bvec2-prohibited.vert | 22 +++++++++++++++++++++
.../compiler/qualifiers/out-bvec3-prohibited.vert | 22 +++++++++++++++++++++
.../compiler/qualifiers/out-bvec4-prohibited.vert | 22 +++++++++++++++++++++
.../compiler/qualifiers/out-struct-prohibited.vert | 23 ++++++++++++++++++++++
20 files changed, 419 insertions(+)
create mode 100644 tests/spec/glsl-1.10/compiler/qualifiers/varying-bool-prohibited.frag
create mode 100644 tests/spec/glsl-1.10/compiler/qualifiers/varying-bool-prohibited.vert
create mode 100644 tests/spec/glsl-1.10/compiler/qualifiers/varying-bvec2-prohibited.frag
create mode 100644 tests/spec/glsl-1.10/compiler/qualifiers/varying-bvec2-prohibited.vert
create mode 100644 tests/spec/glsl-1.10/compiler/qualifiers/varying-bvec3-prohibited.frag
create mode 100644 tests/spec/glsl-1.10/compiler/qualifiers/varying-bvec3-prohibited.vert
create mode 100644 tests/spec/glsl-1.10/compiler/qualifiers/varying-bvec4-prohibited.frag
create mode 100644 tests/spec/glsl-1.10/compiler/qualifiers/varying-bvec4-prohibited.vert
create mode 100644 tests/spec/glsl-1.10/compiler/qualifiers/varying-struct-prohibited.frag
create mode 100644 tests/spec/glsl-1.10/compiler/qualifiers/varying-struct-prohibited.vert
create mode 100644 tests/spec/glsl-1.30/compiler/qualifiers/in-bool-prohibited.frag
create mode 100644 tests/spec/glsl-1.30/compiler/qualifiers/in-bvec2-prohibited.frag
create mode 100644 tests/spec/glsl-1.30/compiler/qualifiers/in-bvec3-prohibited.frag
create mode 100644 tests/spec/glsl-1.30/compiler/qualifiers/in-bvec4-prohibited.frag
create mode 100644 tests/spec/glsl-1.30/compiler/qualifiers/in-struct-prohibited.frag
create mode 100644 tests/spec/glsl-1.30/compiler/qualifiers/out-bool-prohibited.vert
create mode 100644 tests/spec/glsl-1.30/compiler/qualifiers/out-bvec2-prohibited.vert
create mode 100644 tests/spec/glsl-1.30/compiler/qualifiers/out-bvec3-prohibited.vert
create mode 100644 tests/spec/glsl-1.30/compiler/qualifiers/out-bvec4-prohibited.vert
create mode 100644 tests/spec/glsl-1.30/compiler/qualifiers/out-struct-prohibited.vert
diff --git a/tests/spec/glsl-1.10/compiler/qualifiers/varying-bool-prohibited.frag b/tests/spec/glsl-1.10/compiler/qualifiers/varying-bool-prohibited.frag
new file mode 100644
index 0000000..665c4a0
--- /dev/null
+++ b/tests/spec/glsl-1.10/compiler/qualifiers/varying-bool-prohibited.frag
@@ -0,0 +1,20 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.10
+// [end config]
+//
+// Check that a bool can't be used as a varying in GLSL 1.10.
+//
+// From section 4.3.6 ("Varying") of the GLSL 1.10 spec:
+// The varying qualifier can be used only with the data types
+// float, vec2, vec3, vec4, mat2, mat3, and mat4, or arrays of
+// these. Structures cannot be varying.
+
+#version 110
+
+varying bool foo;
+
+void main()
+{
+ gl_FragColor = vec4(foo, 0.0, 0.0, 0.0);
+}
diff --git a/tests/spec/glsl-1.10/compiler/qualifiers/varying-bool-prohibited.vert b/tests/spec/glsl-1.10/compiler/qualifiers/varying-bool-prohibited.vert
new file mode 100644
index 0000000..34e5fde
--- /dev/null
+++ b/tests/spec/glsl-1.10/compiler/qualifiers/varying-bool-prohibited.vert
@@ -0,0 +1,21 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.10
+// [end config]
+//
+// Check that a bool can't be used as a varying in GLSL 1.10.
+//
+// From section 4.3.6 ("Varying") of the GLSL 1.10 spec:
+// The varying qualifier can be used only with the data types
+// float, vec2, vec3, vec4, mat2, mat3, and mat4, or arrays of
+// these. Structures cannot be varying.
+
+#version 110
+
+varying bool foo;
+
+void main()
+{
+ gl_Position = vec4(0.0);
+ foo = true;
+}
diff --git a/tests/spec/glsl-1.10/compiler/qualifiers/varying-bvec2-prohibited.frag b/tests/spec/glsl-1.10/compiler/qualifiers/varying-bvec2-prohibited.frag
new file mode 100644
index 0000000..9833632
--- /dev/null
+++ b/tests/spec/glsl-1.10/compiler/qualifiers/varying-bvec2-prohibited.frag
@@ -0,0 +1,20 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.10
+// [end config]
+//
+// Check that a bvec2 can't be used as a varying in GLSL 1.10.
+//
+// From section 4.3.6 ("Varying") of the GLSL 1.10 spec:
+// The varying qualifier can be used only with the data types
+// float, vec2, vec3, vec4, mat2, mat3, and mat4, or arrays of
+// these. Structures cannot be varying.
+
+#version 110
+
+varying bvec2 foo;
+
+void main()
+{
+ gl_FragColor = vec4(foo, 0.0, 0.0);
+}
diff --git a/tests/spec/glsl-1.10/compiler/qualifiers/varying-bvec2-prohibited.vert b/tests/spec/glsl-1.10/compiler/qualifiers/varying-bvec2-prohibited.vert
new file mode 100644
index 0000000..3560825
--- /dev/null
+++ b/tests/spec/glsl-1.10/compiler/qualifiers/varying-bvec2-prohibited.vert
@@ -0,0 +1,21 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.10
+// [end config]
+//
+// Check that a bvec2 can't be used as a varying in GLSL 1.10.
+//
+// From section 4.3.6 ("Varying") of the GLSL 1.10 spec:
+// The varying qualifier can be used only with the data types
+// float, vec2, vec3, vec4, mat2, mat3, and mat4, or arrays of
+// these. Structures cannot be varying.
+
+#version 110
+
+varying bvec2 foo;
+
+void main()
+{
+ gl_Position = vec4(0.0);
+ foo = bvec2(true, false);
+}
diff --git a/tests/spec/glsl-1.10/compiler/qualifiers/varying-bvec3-prohibited.frag b/tests/spec/glsl-1.10/compiler/qualifiers/varying-bvec3-prohibited.frag
new file mode 100644
index 0000000..7835939
--- /dev/null
+++ b/tests/spec/glsl-1.10/compiler/qualifiers/varying-bvec3-prohibited.frag
@@ -0,0 +1,20 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.10
+// [end config]
+//
+// Check that a bvec3 can't be used as a varying in GLSL 1.10.
+//
+// From section 4.3.6 ("Varying") of the GLSL 1.10 spec:
+// The varying qualifier can be used only with the data types
+// float, vec2, vec3, vec4, mat2, mat3, and mat4, or arrays of
+// these. Structures cannot be varying.
+
+#version 110
+
+varying bvec3 foo;
+
+void main()
+{
+ gl_FragColor = vec4(foo, 0.0);
+}
diff --git a/tests/spec/glsl-1.10/compiler/qualifiers/varying-bvec3-prohibited.vert b/tests/spec/glsl-1.10/compiler/qualifiers/varying-bvec3-prohibited.vert
new file mode 100644
index 0000000..de48f40
--- /dev/null
+++ b/tests/spec/glsl-1.10/compiler/qualifiers/varying-bvec3-prohibited.vert
@@ -0,0 +1,21 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.10
+// [end config]
+//
+// Check that a bvec3 can't be used as a varying in GLSL 1.10.
+//
+// From section 4.3.6 ("Varying") of the GLSL 1.10 spec:
+// The varying qualifier can be used only with the data types
+// float, vec2, vec3, vec4, mat2, mat3, and mat4, or arrays of
+// these. Structures cannot be varying.
+
+#version 110
+
+varying bvec3 foo;
+
+void main()
+{
+ gl_Position = vec4(0.0);
+ foo = bvec3(true, false, true);
+}
diff --git a/tests/spec/glsl-1.10/compiler/qualifiers/varying-bvec4-prohibited.frag b/tests/spec/glsl-1.10/compiler/qualifiers/varying-bvec4-prohibited.frag
new file mode 100644
index 0000000..5ab3ad2
--- /dev/null
+++ b/tests/spec/glsl-1.10/compiler/qualifiers/varying-bvec4-prohibited.frag
@@ -0,0 +1,20 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.10
+// [end config]
+//
+// Check that a bvec4 can't be used as a varying in GLSL 1.10.
+//
+// From section 4.3.6 ("Varying") of the GLSL 1.10 spec:
+// The varying qualifier can be used only with the data types
+// float, vec2, vec3, vec4, mat2, mat3, and mat4, or arrays of
+// these. Structures cannot be varying.
+
+#version 110
+
+varying bvec4 foo;
+
+void main()
+{
+ gl_FragColor = vec4(foo);
+}
diff --git a/tests/spec/glsl-1.10/compiler/qualifiers/varying-bvec4-prohibited.vert b/tests/spec/glsl-1.10/compiler/qualifiers/varying-bvec4-prohibited.vert
new file mode 100644
index 0000000..0306d38
--- /dev/null
+++ b/tests/spec/glsl-1.10/compiler/qualifiers/varying-bvec4-prohibited.vert
@@ -0,0 +1,21 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.10
+// [end config]
+//
+// Check that a bvec4 can't be used as a varying in GLSL 1.10.
+//
+// From section 4.3.6 ("Varying") of the GLSL 1.10 spec:
+// The varying qualifier can be used only with the data types
+// float, vec2, vec3, vec4, mat2, mat3, and mat4, or arrays of
+// these. Structures cannot be varying.
+
+#version 110
+
+varying bvec4 foo;
+
+void main()
+{
+ gl_Position = vec4(0.0);
+ foo = bvec4(true, false, true, false);
+}
diff --git a/tests/spec/glsl-1.10/compiler/qualifiers/varying-struct-prohibited.frag b/tests/spec/glsl-1.10/compiler/qualifiers/varying-struct-prohibited.frag
new file mode 100644
index 0000000..9724195
--- /dev/null
+++ b/tests/spec/glsl-1.10/compiler/qualifiers/varying-struct-prohibited.frag
@@ -0,0 +1,21 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.10
+// [end config]
+//
+// Check that a struct can't be used as a varying in GLSL 1.10.
+//
+// From section 4.3.6 ("Varying") of the GLSL 1.10 spec:
+// The varying qualifier can be used only with the data types
+// float, vec2, vec3, vec4, mat2, mat3, and mat4, or arrays of
+// these. Structures cannot be varying.
+
+#version 110
+
+struct S { vec4 v; };
+varying S foo;
+
+void main()
+{
+ gl_FragColor = foo.v;
+}
diff --git a/tests/spec/glsl-1.10/compiler/qualifiers/varying-struct-prohibited.vert b/tests/spec/glsl-1.10/compiler/qualifiers/varying-struct-prohibited.vert
new file mode 100644
index 0000000..822995d
--- /dev/null
+++ b/tests/spec/glsl-1.10/compiler/qualifiers/varying-struct-prohibited.vert
@@ -0,0 +1,22 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.10
+// [end config]
+//
+// Check that a struct can't be used as a varying in GLSL 1.10.
+//
+// From section 4.3.6 ("Varying") of the GLSL 1.10 spec:
+// The varying qualifier can be used only with the data types
+// float, vec2, vec3, vec4, mat2, mat3, and mat4, or arrays of
+// these. Structures cannot be varying.
+
+#version 110
+
+struct S { vec4 v; };
+varying S foo;
+
+void main()
+{
+ gl_Position = vec4(0.0);
+ foo.v = vec4(0.0);
+}
diff --git a/tests/spec/glsl-1.30/compiler/qualifiers/in-bool-prohibited.frag b/tests/spec/glsl-1.30/compiler/qualifiers/in-bool-prohibited.frag
new file mode 100644
index 0000000..647b365
--- /dev/null
+++ b/tests/spec/glsl-1.30/compiler/qualifiers/in-bool-prohibited.frag
@@ -0,0 +1,20 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.30
+// [end config]
+//
+// Check that a bool can't be used as a varying in GLSL 1.30.
+//
+// From section 4.3.4 ("Inputs") of the GLSL 1.30 spec:
+// Fragment inputs can only be signed and unsigned integers and
+// integer vectors, float, floating-point vectors, matrices, or
+// arrays of these. Structures cannot be input.
+
+#version 130
+
+flat in bool foo;
+
+void main()
+{
+ gl_FragColor = vec4(foo, 0.0, 0.0, 0.0);
+}
diff --git a/tests/spec/glsl-1.30/compiler/qualifiers/in-bvec2-prohibited.frag b/tests/spec/glsl-1.30/compiler/qualifiers/in-bvec2-prohibited.frag
new file mode 100644
index 0000000..622c025
--- /dev/null
+++ b/tests/spec/glsl-1.30/compiler/qualifiers/in-bvec2-prohibited.frag
@@ -0,0 +1,20 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.30
+// [end config]
+//
+// Check that a bvec2 can't be used as a varying in GLSL 1.30.
+//
+// From section 4.3.4 ("Inputs") of the GLSL 1.30 spec:
+// Fragment inputs can only be signed and unsigned integers and
+// integer vectors, float, floating-point vectors, matrices, or
+// arrays of these. Structures cannot be input.
+
+#version 130
+
+flat in bvec2 foo;
+
+void main()
+{
+ gl_FragColor = vec4(foo, 0.0, 0.0);
+}
diff --git a/tests/spec/glsl-1.30/compiler/qualifiers/in-bvec3-prohibited.frag b/tests/spec/glsl-1.30/compiler/qualifiers/in-bvec3-prohibited.frag
new file mode 100644
index 0000000..2cd8534
--- /dev/null
+++ b/tests/spec/glsl-1.30/compiler/qualifiers/in-bvec3-prohibited.frag
@@ -0,0 +1,20 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.30
+// [end config]
+//
+// Check that a bvec3 can't be used as a varying in GLSL 1.30.
+//
+// From section 4.3.4 ("Inputs") of the GLSL 1.30 spec:
+// Fragment inputs can only be signed and unsigned integers and
+// integer vectors, float, floating-point vectors, matrices, or
+// arrays of these. Structures cannot be input.
+
+#version 130
+
+flat in bvec3 foo;
+
+void main()
+{
+ gl_FragColor = vec4(foo, 0.0);
+}
diff --git a/tests/spec/glsl-1.30/compiler/qualifiers/in-bvec4-prohibited.frag b/tests/spec/glsl-1.30/compiler/qualifiers/in-bvec4-prohibited.frag
new file mode 100644
index 0000000..d9d8bd6
--- /dev/null
+++ b/tests/spec/glsl-1.30/compiler/qualifiers/in-bvec4-prohibited.frag
@@ -0,0 +1,20 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.30
+// [end config]
+//
+// Check that a bvec4 can't be used as a varying in GLSL 1.30.
+//
+// From section 4.3.4 ("Inputs") of the GLSL 1.30 spec:
+// Fragment inputs can only be signed and unsigned integers and
+// integer vectors, float, floating-point vectors, matrices, or
+// arrays of these. Structures cannot be input.
+
+#version 130
+
+flat in bvec4 foo;
+
+void main()
+{
+ gl_FragColor = vec4(foo);
+}
diff --git a/tests/spec/glsl-1.30/compiler/qualifiers/in-struct-prohibited.frag b/tests/spec/glsl-1.30/compiler/qualifiers/in-struct-prohibited.frag
new file mode 100644
index 0000000..6a41fdf
--- /dev/null
+++ b/tests/spec/glsl-1.30/compiler/qualifiers/in-struct-prohibited.frag
@@ -0,0 +1,21 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.30
+// [end config]
+//
+// Check that a struct can't be used as a varying in GLSL 1.30.
+//
+// From section 4.3.4 ("Inputs") of the GLSL 1.30 spec:
+// Fragment inputs can only be signed and unsigned integers and
+// integer vectors, float, floating-point vectors, matrices, or
+// arrays of these. Structures cannot be input.
+
+#version 130
+
+struct S { vec4 v; };
+in S foo;
+
+void main()
+{
+ gl_FragColor = foo.v;
+}
diff --git a/tests/spec/glsl-1.30/compiler/qualifiers/out-bool-prohibited.vert b/tests/spec/glsl-1.30/compiler/qualifiers/out-bool-prohibited.vert
new file mode 100644
index 0000000..605de9f
--- /dev/null
+++ b/tests/spec/glsl-1.30/compiler/qualifiers/out-bool-prohibited.vert
@@ -0,0 +1,22 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.30
+// [end config]
+//
+// Check that a bool can't be used as a varying in GLSL 1.30.
+//
+// From section 4.3.6 ("Outputs") of the GLSL 1.30 spec:
+// Vertex output variables ... can only be float, floating-point
+// vectors, matrices, signed or unsigned integers or integer
+// vectors, or arrays of any these. ... Structures cannot be
+// output.
+
+#version 130
+
+flat out bool foo;
+
+void main()
+{
+ gl_Position = vec4(0.0);
+ foo = true;
+}
diff --git a/tests/spec/glsl-1.30/compiler/qualifiers/out-bvec2-prohibited.vert b/tests/spec/glsl-1.30/compiler/qualifiers/out-bvec2-prohibited.vert
new file mode 100644
index 0000000..4b03107
--- /dev/null
+++ b/tests/spec/glsl-1.30/compiler/qualifiers/out-bvec2-prohibited.vert
@@ -0,0 +1,22 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.30
+// [end config]
+//
+// Check that a bvec2 can't be used as a varying in GLSL 1.30.
+//
+// From section 4.3.6 ("Outputs") of the GLSL 1.30 spec:
+// Vertex output variables ... can only be float, floating-point
+// vectors, matrices, signed or unsigned integers or integer
+// vectors, or arrays of any these. ... Structures cannot be
+// output.
+
+#version 130
+
+flat out bvec2 foo;
+
+void main()
+{
+ gl_Position = vec4(0.0);
+ foo = bvec2(true, false);
+}
diff --git a/tests/spec/glsl-1.30/compiler/qualifiers/out-bvec3-prohibited.vert b/tests/spec/glsl-1.30/compiler/qualifiers/out-bvec3-prohibited.vert
new file mode 100644
index 0000000..9618aca
--- /dev/null
+++ b/tests/spec/glsl-1.30/compiler/qualifiers/out-bvec3-prohibited.vert
@@ -0,0 +1,22 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.30
+// [end config]
+//
+// Check that a bvec3 can't be used as a varying in GLSL 1.30.
+//
+// From section 4.3.6 ("Outputs") of the GLSL 1.30 spec:
+// Vertex output variables ... can only be float, floating-point
+// vectors, matrices, signed or unsigned integers or integer
+// vectors, or arrays of any these. ... Structures cannot be
+// output.
+
+#version 130
+
+flat out bvec3 foo;
+
+void main()
+{
+ gl_Position = vec4(0.0);
+ foo = bvec3(true, false, true);
+}
diff --git a/tests/spec/glsl-1.30/compiler/qualifiers/out-bvec4-prohibited.vert b/tests/spec/glsl-1.30/compiler/qualifiers/out-bvec4-prohibited.vert
new file mode 100644
index 0000000..a1f6ffa
--- /dev/null
+++ b/tests/spec/glsl-1.30/compiler/qualifiers/out-bvec4-prohibited.vert
@@ -0,0 +1,22 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.30
+// [end config]
+//
+// Check that a bvec4 can't be used as a varying in GLSL 1.30.
+//
+// From section 4.3.6 ("Outputs") of the GLSL 1.30 spec:
+// Vertex output variables ... can only be float, floating-point
+// vectors, matrices, signed or unsigned integers or integer
+// vectors, or arrays of any these. ... Structures cannot be
+// output.
+
+#version 130
+
+flat out bvec4 foo;
+
+void main()
+{
+ gl_Position = vec4(0.0);
+ foo = bvec4(true, false, true, false);
+}
diff --git a/tests/spec/glsl-1.30/compiler/qualifiers/out-struct-prohibited.vert b/tests/spec/glsl-1.30/compiler/qualifiers/out-struct-prohibited.vert
new file mode 100644
index 0000000..ced9024
--- /dev/null
+++ b/tests/spec/glsl-1.30/compiler/qualifiers/out-struct-prohibited.vert
@@ -0,0 +1,23 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.30
+// [end config]
+//
+// Check that a struct can't be used as a varying in GLSL 1.30.
+//
+// From section 4.3.6 ("Outputs") of the GLSL 1.30 spec:
+// Vertex output variables ... can only be float, floating-point
+// vectors, matrices, signed or unsigned integers or integer
+// vectors, or arrays of any these. ... Structures cannot be
+// output.
+
+#version 130
+
+struct S { vec4 v; };
+out S foo;
+
+void main()
+{
+ gl_Position = vec4(0.0);
+ foo.v = vec4(0.0);
+}
--
1.8.0.2
More information about the Piglit
mailing list