[Piglit] [PATCH 7/8] arb_enhanced_layouts: convert double overlap test to a type mismatch test
Timothy Arceri
timothy.arceri at collabora.com
Sun Nov 29 14:19:56 PST 2015
We can't mix floats and doubles so test for mismatchh rather than overlap.
---
.../compiler/component-layout/overlap-double.vert | 31 ------------
...vs-to-fs-type-mismatch-double-float.shader_test | 59 ++++++++++++++++++++++
2 files changed, 59 insertions(+), 31 deletions(-)
delete mode 100644 tests/spec/arb_enhanced_layouts/compiler/component-layout/overlap-double.vert
create mode 100644 tests/spec/arb_enhanced_layouts/linker/component-layout/vs-to-fs-type-mismatch-double-float.shader_test
diff --git a/tests/spec/arb_enhanced_layouts/compiler/component-layout/overlap-double.vert b/tests/spec/arb_enhanced_layouts/compiler/component-layout/overlap-double.vert
deleted file mode 100644
index 255ecdf..0000000
--- a/tests/spec/arb_enhanced_layouts/compiler/component-layout/overlap-double.vert
+++ /dev/null
@@ -1,31 +0,0 @@
-// [config]
-// expect_result: fail
-// glsl_version: 1.40
-// check_link: true
-// require_extensions: GL_ARB_enhanced_layouts GL_ARB_gpu_shader_fp64 GL_ARB_separate_shader_objects
-// [end config]
-//
-// From Section 4.4.1 (Input Layout Qualifiers) of the GLSL 4.50 spec:
-//
-// "Location aliasing is causing two variables or block members to have the
-// same location number. Component aliasing is assigning the same (or
-// overlapping) component numbers for two location aliases. (Recall if
-// component is not used, components are assigned starting with 0.) With one
-// exception, location aliasing is allowed only if it does not cause
-// component aliasing; it is a compile-time or link-time error to cause
-// component aliasing."
-
-#version 140
-#extension GL_ARB_enhanced_layouts: require
-#extension GL_ARB_gpu_shader_fp64: require
-#extension GL_ARB_separate_shader_objects: require
-
-// consume X/Y components
-layout(location = 7, component = 0) out double a;
-
-// consumes Y component
-layout(location = 7, component = 1) out float b;
-
-void main()
-{
-}
diff --git a/tests/spec/arb_enhanced_layouts/linker/component-layout/vs-to-fs-type-mismatch-double-float.shader_test b/tests/spec/arb_enhanced_layouts/linker/component-layout/vs-to-fs-type-mismatch-double-float.shader_test
new file mode 100644
index 0000000..7e51c4c
--- /dev/null
+++ b/tests/spec/arb_enhanced_layouts/linker/component-layout/vs-to-fs-type-mismatch-double-float.shader_test
@@ -0,0 +1,59 @@
+// From Section 4.4.1 (Input Layout Qualifiers) of the GLSL 4.50 spec:
+//
+// "Location aliasing is causing two variables or block members to have the
+// same location number. Component aliasing is assigning the same (or
+// overlapping) component numbers for two location aliases. (Recall if
+// component is not used, components are assigned starting with 0.) With one
+// exception, location aliasing is allowed only if it does not cause
+// component aliasing; it is a compile-time or link-time error to cause
+// component aliasing."
+//
+// "Further, when location aliasing, the aliases sharing the location must
+// have the same underlying numerical type (floating-point or integer) and
+// the same auxiliary storage and interpolation qualification"
+
+[require]
+GLSL >= 1.40
+GL_ARB_enhanced_layouts
+GL_ARB_separate_shader_objects
+GL_ARB_gpu_shader_fp64
+
+[vertex shader]
+#version 140
+#extension GL_ARB_enhanced_layouts: require
+#extension GL_ARB_gpu_shader_fp64: require
+#extension GL_ARB_separate_shader_objects: require
+
+// consume X/Y components
+layout(location = 7, component = 0) flat out double a;
+
+// consumes Y component
+layout(location = 7, component = 2) out float b;
+
+void main()
+{
+ a = 1.0LF;
+ b = 0.0;
+}
+
+[fragment shader]
+#version 140
+#extension GL_ARB_enhanced_layouts: require
+#extension GL_ARB_gpu_shader_fp64: require
+#extension GL_ARB_separate_shader_objects: require
+
+out vec4 color;
+
+// consume X/Y components
+layout(location = 7, component = 0) flat in double a;
+
+// consumes Y component
+layout(location = 7, component = 2) in float b;
+
+void main()
+{
+ color = vec4(b, a, 1.0, 1.0);
+}
+
+[test]
+link error
--
2.4.3
More information about the Piglit
mailing list