--- .../type-mismatch-signed-float-illegal.vert | 28 ----------- .../type-mismatch-signed-unsigned-illegal.vert | 28 ----------- .../type-mismatch-unsigned-float-illegal.vert | 28 ----------- ...vs-to-fs-type-mismatch-signed-float.shader_test | 56 ++++++++++++++++++++++ ...to-fs-type-mismatch-signed-unsigned.shader_test | 56 ++++++++++++++++++++++ ...-to-fs-type-mismatch-unsigned-float.shader_test | 56 ++++++++++++++++++++++ 6 files changed, 168 insertions(+), 84 deletions(-) delete mode 100644 tests/spec/arb_enhanced_layouts/compiler/component-layout/type-mismatch-signed-float-illegal.vert delete mode 100644 tests/spec/arb_enhanced_layouts/compiler/component-layout/type-mismatch-signed-unsigned-illegal.vert delete mode 100644 tests/spec/arb_enhanced_layouts/compiler/component-layout/type-mismatch-unsigned-float-illegal.vert create mode 100644 tests/spec/arb_enhanced_layouts/linker/component-layout/vs-to-fs-type-mismatch-signed-float.shader_test create mode 100644 tests/spec/arb_enhanced_layouts/linker/component-layout/vs-to-fs-type-mismatch-signed-unsigned.shader_test create mode 100644 tests/spec/arb_enhanced_layouts/linker/component-layout/vs-to-fs-type-mismatch-unsigned-float.shader_test
diff --git a/tests/spec/arb_enhanced_layouts/compiler/component-layout/type-mismatch-signed-float-illegal.vert b/tests/spec/arb_enhanced_layouts/compiler/component-layout/type-mismatch-signed-float-illegal.vert deleted file mode 100644 index 4464b51..0000000 --- a/tests/spec/arb_enhanced_layouts/compiler/component-layout/type-mismatch-signed-float-illegal.vert +++ /dev/null @@ -1,28 +0,0 @@ -// [config] -// expect_result: fail -// glsl_version: 1.40 -// check_link: true -// require_extensions: GL_ARB_enhanced_layouts GL_ARB_separate_shader_objects -// [end config] -// -// From Section 4.4.1 (Input Layout Qualifiers) of the GLSL 4.50 spec: -// -// "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" - -#version 140 -#extension GL_ARB_enhanced_layouts: require -#extension GL_ARB_separate_shader_objects: require - -// consume X/Y/Z components -layout(location = 0) out ivec3 a; - -// consumes W component -layout(location = 0, component = 3) out float b; - -void main() -{ - a = ivec3(0); - b = 1.0; -} diff --git a/tests/spec/arb_enhanced_layouts/compiler/component-layout/type-mismatch-signed-unsigned-illegal.vert b/tests/spec/arb_enhanced_layouts/compiler/component-layout/type-mismatch-signed-unsigned-illegal.vert deleted file mode 100644 index 48dd641..0000000 --- a/tests/spec/arb_enhanced_layouts/compiler/component-layout/type-mismatch-signed-unsigned-illegal.vert +++ /dev/null @@ -1,28 +0,0 @@ -// [config] -// expect_result: fail -// glsl_version: 1.40 -// check_link: true -// require_extensions: GL_ARB_enhanced_layouts GL_ARB_separate_shader_objects -// [end config] -// -// From Section 4.4.1 (Input Layout Qualifiers) of the GLSL 4.50 spec: -// -// "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" - -#version 140 -#extension GL_ARB_enhanced_layouts: require -#extension GL_ARB_separate_shader_objects: require - -// consume X/Y/Z components -layout(location = 0) out ivec3 a; - -// consumes W component -layout(location = 0, component = 3) out uint b; - -void main() -{ - a = ivec3(0); - b = 1u; -} diff --git a/tests/spec/arb_enhanced_layouts/compiler/component-layout/type-mismatch-unsigned-float-illegal.vert b/tests/spec/arb_enhanced_layouts/compiler/component-layout/type-mismatch-unsigned-float-illegal.vert deleted file mode 100644 index 352b846..0000000 --- a/tests/spec/arb_enhanced_layouts/compiler/component-layout/type-mismatch-unsigned-float-illegal.vert +++ /dev/null @@ -1,28 +0,0 @@ -// [config] -// expect_result: fail -// glsl_version: 1.40 -// check_link: true -// require_extensions: GL_ARB_enhanced_layouts GL_ARB_separate_shader_objects -// [end config] -// -// From Section 4.4.1 (Input Layout Qualifiers) of the GLSL 4.50 spec: -// -// "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" - -#version 140 -#extension GL_ARB_enhanced_layouts: require -#extension GL_ARB_separate_shader_objects: require - -// consume X/Y/Z components -layout(location = 0) out uvec3 a; - -// consumes W component -layout(location = 0, component = 3) out float b; - -void main() -{ - a = uvec3(0); - b = 1.0; -} diff --git a/tests/spec/arb_enhanced_layouts/linker/component-layout/vs-to-fs-type-mismatch-signed-float.shader_test b/tests/spec/arb_enhanced_layouts/linker/component-layout/vs-to-fs-type-mismatch-signed-float.shader_test new file mode 100644 index 0000000..8c62198 --- /dev/null +++ b/tests/spec/arb_enhanced_layouts/linker/component-layout/vs-to-fs-type-mismatch-signed-float.shader_test @@ -0,0 +1,56 @@ +// 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 + +[vertex shader] +#version 140 +#extension GL_ARB_enhanced_layouts: require +#extension GL_ARB_separate_shader_objects: require + +// consume X/Y/Z components +layout(location = 0) flat out ivec3 a; + +// consumes W component +layout(location = 0, component = 3) flat out float b; + +void main() +{ + a = ivec3(0); + b = 1.0; +} + +[fragment shader] +#version 140 +#extension GL_ARB_enhanced_layouts: require +#extension GL_ARB_separate_shader_objects: require + +out vec4 color; + +// consume Y/Z/W components of 32 vectors +layout(location = 0) flat in ivec3 a; + +// consumes X component of first vector +layout(location = 0, component = 3) flat in float b; + +void main() +{ + color = vec4(b, a); +} + +[test] +link error diff --git a/tests/spec/arb_enhanced_layouts/linker/component-layout/vs-to-fs-type-mismatch-signed-unsigned.shader_test b/tests/spec/arb_enhanced_layouts/linker/component-layout/vs-to-fs-type-mismatch-signed-unsigned.shader_test new file mode 100644 index 0000000..62bd8ef --- /dev/null +++ b/tests/spec/arb_enhanced_layouts/linker/component-layout/vs-to-fs-type-mismatch-signed-unsigned.shader_test @@ -0,0 +1,56 @@ +// 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 + +[vertex shader] +#version 140 +#extension GL_ARB_enhanced_layouts: require +#extension GL_ARB_separate_shader_objects: require + +// consume X/Y/Z components +layout(location = 0) out ivec3 a; + +// consumes W component +layout(location = 0, component = 3) out uint b; + +void main() +{ + a = ivec3(0); + b = 1u; +} + +[fragment shader] +#version 140 +#extension GL_ARB_enhanced_layouts: require +#extension GL_ARB_separate_shader_objects: require + +out vec4 color; + +// consume Y/Z/W components of 32 vectors +layout(location = 0) flat in ivec3 a; + +// consumes X component of first vector +layout(location = 0, component = 3) flat in uint b; + +void main() +{ + color = vec4(b, a); +} + +[test] +link error diff --git a/tests/spec/arb_enhanced_layouts/linker/component-layout/vs-to-fs-type-mismatch-unsigned-float.shader_test b/tests/spec/arb_enhanced_layouts/linker/component-layout/vs-to-fs-type-mismatch-unsigned-float.shader_test new file mode 100644 index 0000000..1d84723 --- /dev/null +++ b/tests/spec/arb_enhanced_layouts/linker/component-layout/vs-to-fs-type-mismatch-unsigned-float.shader_test @@ -0,0 +1,56 @@ +// 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 + +[vertex shader] +#version 140 +#extension GL_ARB_enhanced_layouts: require +#extension GL_ARB_separate_shader_objects: require + +// consume X/Y/Z components +layout(location = 0) out uvec3 a; + +// consumes W component +layout(location = 0, component = 3) out float b; + +void main() +{ + a = uvec3(0); + b = 1.0; +} + +[fragment shader] +#version 140 +#extension GL_ARB_enhanced_layouts: require +#extension GL_ARB_separate_shader_objects: require + +out vec4 color; + +// consume Y/Z/W components of 32 vectors +layout(location = 0) flat in uvec3 a; + +// consumes X component of first vector +layout(location = 0, component = 3) flat in float b; + +void main() +{ + color = vec4(b, a); +} + +[test] +link error -- 2.4.3 _______________________________________________ Piglit mailing list Piglit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/piglit