--- .../xfb_stride/block-explicit-max.vert | 22 +++++++++++++ .../xfb_stride/block-explicit-too-large.vert | 22 +++++++++++++ .../xfb_stride/global-explicit-max.vert | 22 +++++++++++++ .../xfb_stride/global-explicit-too-large.vert | 22 +++++++++++++ .../xfb_stride/type-arrays.vert | 36 ++++++++++++++++++++++ .../xfb_stride/types.vert | 36 ++++++++++++++++++++++ .../xfb_stride/variable-explicit-max.vert | 20 ++++++++++++ .../xfb_stride/variable-explicit-too-large.vert | 20 ++++++++++++ 8 files changed, 200 insertions(+) create mode 100644 tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/block-explicit-max.vert create mode 100644 tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/block-explicit-too-large.vert create mode 100644 tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/global-explicit-max.vert create mode 100644 tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/global-explicit-too-large.vert create mode 100644 tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/type-arrays.vert create mode 100644 tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/types.vert create mode 100644 tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/variable-explicit-max.vert create mode 100644 tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/variable-explicit-too-large.vert
diff --git a/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/block-explicit-max.vert b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/block-explicit-max.vert new file mode 100644 index 0000000..06ba9be --- /dev/null +++ b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/block-explicit-max.vert @@ -0,0 +1,22 @@ +// [config] +// expect_result: pass +// glsl_version: 1.50 +// 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_stride = gl_MaxTransformFeedbackInterleavedComponents) out block { + vec4 var; +}; + +void main() +{ +} diff --git a/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/block-explicit-too-large.vert b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/block-explicit-too-large.vert new file mode 100644 index 0000000..7e96e90 --- /dev/null +++ b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/block-explicit-too-large.vert @@ -0,0 +1,22 @@ +// [config] +// expect_result: fail +// glsl_version: 1.50 +// 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_stride = gl_MaxTransformFeedbackInterleavedComponents + 1) out block { + vec4 var; +}; + +void main() +{ +} diff --git a/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/global-explicit-max.vert b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/global-explicit-max.vert new file mode 100644 index 0000000..58c79c2 --- /dev/null +++ b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/global-explicit-max.vert @@ -0,0 +1,22 @@ +// [config] +// expect_result: pass +// glsl_version: 1.40 +// 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 140 +#extension GL_ARB_enhanced_layouts: require + +layout (xfb_stride = gl_MaxTransformFeedbackInterleavedComponents) out; + +out vec4 var; + +void main() +{ +} diff --git a/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/global-explicit-too-large.vert b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/global-explicit-too-large.vert new file mode 100644 index 0000000..c431d79 --- /dev/null +++ b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/global-explicit-too-large.vert @@ -0,0 +1,22 @@ +// [config] +// expect_result: fail +// glsl_version: 1.40 +// 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 140 +#extension GL_ARB_enhanced_layouts: require + +layout (xfb_stride = gl_MaxTransformFeedbackInterleavedComponents + 1) out; + +out vec4 var; + +void main() +{ +} diff --git a/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/type-arrays.vert b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/type-arrays.vert new file mode 100644 index 0000000..f13e291 --- /dev/null +++ b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/type-arrays.vert @@ -0,0 +1,36 @@ +// [config] +// expect_result: pass +// glsl_version: 1.50 +// require_extensions: GL_ARB_enhanced_layouts +// [end config] +// +// From the GL_ARB_enhanced_layouts spec: +// +// "Variables and block members qualified with *xfb_offset* can be scalars, +// vectors, matrices, structures, and (sized) arrays of these. The offset +// must be a multiple of the size of the first component of the first +// qualified variable or block member, or a compile-time error results. +// Further, if applied to an aggregate containing a double, the offset must +// also be a multiple of 8, and the space taken in the buffer will be a +// multiple of 8." +// +// We take this to mean xfb_stride can also qualify these types. + +#version 150 +#extension GL_ARB_enhanced_layouts: require + +struct S { + vec3 x; +}; + +layout(xfb_stride = 4) out float var1[2]; + +layout(xfb_stride = 8) out vec4 var2[2]; + +layout(xfb_stride = 64) out mat4 var3[2]; + +layout(xfb_stride = 12) out S s[2]; + +void main() +{ +} diff --git a/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/types.vert b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/types.vert new file mode 100644 index 0000000..746f20f --- /dev/null +++ b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/types.vert @@ -0,0 +1,36 @@ +// [config] +// expect_result: pass +// glsl_version: 1.50 +// require_extensions: GL_ARB_enhanced_layouts +// [end config] +// +// From the GL_ARB_enhanced_layouts spec: +// +// "Variables and block members qualified with *xfb_offset* can be scalars, +// vectors, matrices, structures, and (sized) arrays of these. The offset +// must be a multiple of the size of the first component of the first +// qualified variable or block member, or a compile-time error results. +// Further, if applied to an aggregate containing a double, the offset must +// also be a multiple of 8, and the space taken in the buffer will be a +// multiple of 8." +// +// We take this to mean xfb_buffer can also qualify these types. + +#version 150 +#extension GL_ARB_enhanced_layouts: require + +struct S { + vec3 x; +}; + +layout(xfb_stride = 4) out float var1; + +layout(xfb_stride = 8) out vec4 var2; + +layout(xfb_stride = 64) out mat4 var3; + +layout(xfb_stride = 12) out S s; + +void main() +{ +} diff --git a/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/variable-explicit-max.vert b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/variable-explicit-max.vert new file mode 100644 index 0000000..717244b --- /dev/null +++ b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/variable-explicit-max.vert @@ -0,0 +1,20 @@ +// [config] +// expect_result: pass +// glsl_version: 1.40 +// 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 140 +#extension GL_ARB_enhanced_layouts: require + +layout(xfb_stride = gl_MaxTransformFeedbackInterleavedComponents) out vec4 var; + +void main() +{ +} diff --git a/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/variable-explicit-too-large.vert b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/variable-explicit-too-large.vert new file mode 100644 index 0000000..f369b99 --- /dev/null +++ b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_stride/variable-explicit-too-large.vert @@ -0,0 +1,20 @@ +// [config] +// expect_result: fail +// glsl_version: 1.50 +// 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_stride = gl_MaxTransformFeedbackInterleavedComponents + 1) out vec4 var; + +void main() +{ +} -- 2.5.0 _______________________________________________ Piglit mailing list Piglit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/piglit