--- .../xfb_stride/block-stride-overflow.vert | 24 ++++++++++++++++++++ .../xfb_stride/named-block-stride-overflow.vert | 24 ++++++++++++++++++++ .../xfb_stride/variable-implicit-too-large.vert | 22 ++++++++++++++++++ .../variable-stride-mismatch-global.vert | 26 ++++++++++++++++++++++ .../xfb_stride/variable-stride-mismatch.vert | 24 ++++++++++++++++++++ .../xfb_stride/variable-stride-overflow.vert | 24 ++++++++++++++++++++ 6 files changed, 144 insertions(+) create mode 100644 tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/block-stride-overflow.vert create mode 100644 tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/named-block-stride-overflow.vert create mode 100644 tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/variable-implicit-too-large.vert create mode 100644 tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/variable-stride-mismatch-global.vert create mode 100644 tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/variable-stride-mismatch.vert create mode 100644 tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/variable-stride-overflow.vert
diff --git a/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/block-stride-overflow.vert b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/block-stride-overflow.vert new file mode 100644 index 0000000..2560baf --- /dev/null +++ b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/block-stride-overflow.vert @@ -0,0 +1,24 @@ +// [config] +// expect_result: fail +// glsl_version: 1.50 +// check_link: true +// require_extensions: GL_ARB_enhanced_layouts +// [end config] +// +// From the GL_ARB_enhanced_layouts spec: +// +// "It is a compile-time or link-time error to have any *xfb_offset* +// that overflows *xfb_stride*, whether stated on declarations before or +// after the *xfb_stride*, or in different compilation units." + +#version 150 +#extension GL_ARB_enhanced_layouts: require + +layout (xfb_offset = 16, xfb_stride = 20) out block { + vec4 var; +}; + +void main() +{ + var = vec4(1.0); +} diff --git a/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/named-block-stride-overflow.vert b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/named-block-stride-overflow.vert new file mode 100644 index 0000000..4558bea --- /dev/null +++ b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/named-block-stride-overflow.vert @@ -0,0 +1,24 @@ +// [config] +// expect_result: fail +// glsl_version: 1.50 +// check_link: true +// require_extensions: GL_ARB_enhanced_layouts +// [end config] +// +// From the GL_ARB_enhanced_layouts spec: +// +// "It is a compile-time or link-time error to have any *xfb_offset* +// that overflows *xfb_stride*, whether stated on declarations before or +// after the *xfb_stride*, or in different compilation units." + +#version 150 +#extension GL_ARB_enhanced_layouts: require + +layout (xfb_offset = 16, xfb_stride = 20) out block { + vec4 var; +} b1; + +void main() +{ + b1.var = vec4(1.0); +} diff --git a/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/variable-implicit-too-large.vert b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/variable-implicit-too-large.vert new file mode 100644 index 0000000..f3b1db0 --- /dev/null +++ b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/variable-implicit-too-large.vert @@ -0,0 +1,22 @@ +// [config] +// expect_result: fail +// glsl_version: 1.50 +// check_link: true +// require_extensions: GL_ARB_enhanced_layouts +// [end config] +// +// From the GL_ARB_enhanced_layouts spec: +// +// "The resulting stride (implicit or explicit) must be less than or equal +// to the implementation-dependent constant +// gl_MaxTransformFeedbackInterleavedComponents." + +#version 150 +#extension GL_ARB_enhanced_layouts: require + +layout(xfb_offset = (gl_MaxTransformFeedbackInterleavedComponents * 4) - 12) out vec4 var; + +void main() +{ + var = vec4(1.0); +} diff --git a/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/variable-stride-mismatch-global.vert b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/variable-stride-mismatch-global.vert new file mode 100644 index 0000000..b8184ba --- /dev/null +++ b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/variable-stride-mismatch-global.vert @@ -0,0 +1,26 @@ +// [config] +// expect_result: fail +// glsl_version: 1.40 +// check_link: true +// require_extensions: GL_ARB_enhanced_layouts +// [end config] +// +// From the GL_ARB_enhanced_layouts spec: +// +// "While *xfb_stride* can be declared multiple times for the same buffer, +// it is a compile-time or link-time error to have different values +// specified for the stride for the same buffer." + +#version 140 +#extension GL_ARB_enhanced_layouts: require + +layout(xfb_stride = 20, xfb_buffer = 0) out; + +layout(xfb_buffer = 0) out vec4 var; +layout(xfb_offset = 16, xfb_stride = 32) out vec4 var2; + +void main() +{ + var = vec4(1.0); + var2 = vec4(0.0); +} diff --git a/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/variable-stride-mismatch.vert b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/variable-stride-mismatch.vert new file mode 100644 index 0000000..55fb2af --- /dev/null +++ b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/variable-stride-mismatch.vert @@ -0,0 +1,24 @@ +// [config] +// expect_result: fail +// glsl_version: 1.40 +// check_link: true +// require_extensions: GL_ARB_enhanced_layouts +// [end config] +// +// From the GL_ARB_enhanced_layouts spec: +// +// "While *xfb_stride* can be declared multiple times for the same buffer, +// it is a compile-time or link-time error to have different values +// specified for the stride for the same buffer." + +#version 140 +#extension GL_ARB_enhanced_layouts: require + +layout(xfb_stride = 20) out vec4 var; +layout(xfb_offset = 16, xfb_stride = 32) out vec4 var2; + +void main() +{ + var = vec4(1.0); + var2 = vec4(0.0); +} diff --git a/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/variable-stride-overflow.vert b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/variable-stride-overflow.vert new file mode 100644 index 0000000..80374d0 --- /dev/null +++ b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/variable-stride-overflow.vert @@ -0,0 +1,24 @@ +// [config] +// expect_result: fail +// glsl_version: 1.40 +// check_link: true +// require_extensions: GL_ARB_enhanced_layouts +// [end config] +// +// From the GL_ARB_enhanced_layouts spec: +// +// "It is a compile-time or link-time error to have any *xfb_offset* +// that overflows *xfb_stride*, whether stated on declarations before or +// after the *xfb_stride*, or in different compilation units." + +#version 140 +#extension GL_ARB_enhanced_layouts: require + +layout(xfb_stride = 20) out vec4 var; +layout(xfb_offset = 16) out vec4 var2; + +void main() +{ + var = vec4(1.0); + var2 = vec4(0.0); +} -- 2.5.5 _______________________________________________ Piglit mailing list Piglit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/piglit