--- .../xfb_offset/block-member.vert | 23 +++++++++++++++ .../xfb_offset/block-with-double.vert | 26 +++++++++++++++++ .../xfb_offset/block.vert | 23 +++++++++++++++ .../xfb_offset/global.vert | 19 ++++++++++++ .../xfb_offset/invalid-block-with-double.vert | 26 +++++++++++++++++ .../xfb_offset/invalid-block.vert | 22 ++++++++++++++ .../xfb_offset/invalid-struct-with-double.vert | 28 ++++++++++++++++++ .../xfb_offset/invalid-struct.vert | 24 +++++++++++++++ .../xfb_offset/invalid-variable.vert | 20 +++++++++++++ .../xfb_offset/named-block-member.vert | 23 +++++++++++++++ .../xfb_offset/named-block.vert | 23 +++++++++++++++ .../xfb_offset/struct-with-double.vert | 28 ++++++++++++++++++ .../xfb_offset/type-arrays.vert | 34 ++++++++++++++++++++++ .../xfb_offset/types.vert | 34 ++++++++++++++++++++++ .../xfb_offset/unsized-array.vert | 19 ++++++++++++ .../xfb_offset/variable.vert | 20 +++++++++++++ 16 files changed, 392 insertions(+) create mode 100644 tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/block-member.vert create mode 100644 tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/block-with-double.vert create mode 100644 tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/block.vert create mode 100644 tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/global.vert create mode 100644 tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/invalid-block-with-double.vert create mode 100644 tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/invalid-block.vert create mode 100644 tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/invalid-struct-with-double.vert create mode 100644 tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/invalid-struct.vert create mode 100644 tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/invalid-variable.vert create mode 100644 tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/named-block-member.vert create mode 100644 tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/named-block.vert create mode 100644 tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/struct-with-double.vert create mode 100644 tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/type-arrays.vert create mode 100644 tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/types.vert create mode 100644 tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/unsized-array.vert create mode 100644 tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/variable.vert
diff --git a/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/block-member.vert b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/block-member.vert new file mode 100644 index 0000000..b54175e --- /dev/null +++ b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/block-member.vert @@ -0,0 +1,23 @@ +// [config] +// expect_result: pass +// glsl_version: 1.50 +// require_extensions: GL_ARB_enhanced_layouts +// [end config] +// +// From the GL_ARB_enhanced_layouts spec: +// +// "The *xfb_offset* qualifier assigns a byte offset within a transform +// feedback buffer. Only variables, block members, or blocks can be +// qualified with *xfb_offset*." + +#version 150 +#extension GL_ARB_enhanced_layouts: require + +out block { + vec4 var1; + layout(xfb_offset = 0) vec4 var2; +}; + +void main() +{ +} diff --git a/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/block-with-double.vert b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/block-with-double.vert new file mode 100644 index 0000000..29d0dac --- /dev/null +++ b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/block-with-double.vert @@ -0,0 +1,26 @@ +// [config] +// expect_result: pass +// glsl_version: 1.50 +// require_extensions: GL_ARB_enhanced_layouts GL_ARB_gpu_shader_fp64 +// [end config] +// +// From the GL_ARB_enhanced_layouts spec: +// +// "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." + +#version 150 +#extension GL_ARB_enhanced_layouts: require +#extension GL_ARB_gpu_shader_fp64: require + +layout(xfb_offset = 8) out block { + vec4 var1; + dvec3 var2; +}; + +void main() +{ +} diff --git a/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/block.vert b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/block.vert new file mode 100644 index 0000000..8c3e4e2 --- /dev/null +++ b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/block.vert @@ -0,0 +1,23 @@ +// [config] +// expect_result: pass +// glsl_version: 1.50 +// require_extensions: GL_ARB_enhanced_layouts +// [end config] +// +// From the GL_ARB_enhanced_layouts spec: +// +// "The *xfb_offset* qualifier assigns a byte offset within a transform +// feedback buffer. Only variables, block members, or blocks can be +// qualified with *xfb_offset*." + +#version 150 +#extension GL_ARB_enhanced_layouts: require + +layout(xfb_offset = 16) out block { + vec4 var1; + layout(xfb_offset = 0) vec4 var2; +}; + +void main() +{ +} diff --git a/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/global.vert b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/global.vert new file mode 100644 index 0000000..a301e15 --- /dev/null +++ b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/global.vert @@ -0,0 +1,19 @@ +// [config] +// expect_result: fail +// glsl_version: 1.50 +// require_extensions: GL_ARB_enhanced_layouts +// [end config] +// +// From the GL_ARB_enhanced_layouts spec: +// +// "Only variables, block members, or blocks can be qualified with +// *xfb_offset*." + +#version 150 +#extension GL_ARB_enhanced_layouts: require + +layout (xfb_offset = 0) out; + +void main() +{ +} diff --git a/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/invalid-block-with-double.vert b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/invalid-block-with-double.vert new file mode 100644 index 0000000..8af10e0 --- /dev/null +++ b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/invalid-block-with-double.vert @@ -0,0 +1,26 @@ +// [config] +// expect_result: fail +// glsl_version: 1.50 +// require_extensions: GL_ARB_enhanced_layouts GL_ARB_gpu_shader_fp64 +// [end config] +// +// From the GL_ARB_enhanced_layouts spec: +// +// "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." + +#version 150 +#extension GL_ARB_enhanced_layouts: require +#extension GL_ARB_gpu_shader_fp64: require + +layout(xfb_offset = 4) out block { + vec4 var1; + dvec3 var2; +}; + +void main() +{ +} diff --git a/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/invalid-block.vert b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/invalid-block.vert new file mode 100644 index 0000000..9f5e0c2 --- /dev/null +++ b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/invalid-block.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 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." + +#version 150 +#extension GL_ARB_enhanced_layouts: require + +layout(xfb_offset = 2) out block { + vec4 var; +}; + +void main() +{ +} diff --git a/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/invalid-struct-with-double.vert b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/invalid-struct-with-double.vert new file mode 100644 index 0000000..b4fa4ba --- /dev/null +++ b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/invalid-struct-with-double.vert @@ -0,0 +1,28 @@ +// [config] +// expect_result: fail +// glsl_version: 1.50 +// require_extensions: GL_ARB_enhanced_layouts GL_ARB_gpu_shader_fp64 +// [end config] +// +// From the GL_ARB_enhanced_layouts spec: +// +// "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." + +#version 150 +#extension GL_ARB_enhanced_layouts: require +#extension GL_ARB_gpu_shader_fp64: require + +struct S { + float x; + double y; +}; + +layout(xfb_offset = 4) out S s; + +void main() +{ +} diff --git a/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/invalid-struct.vert b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/invalid-struct.vert new file mode 100644 index 0000000..426813c --- /dev/null +++ b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/invalid-struct.vert @@ -0,0 +1,24 @@ +// [config] +// expect_result: fail +// glsl_version: 1.50 +// require_extensions: GL_ARB_enhanced_layouts +// [end config] +// +// From the GL_ARB_enhanced_layouts spec: +// +// "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." + +#version 150 +#extension GL_ARB_enhanced_layouts: require + +struct S { + float x; +}; + +layout(xfb_offset = 2) out S s; + +void main() +{ +} diff --git a/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/invalid-variable.vert b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/invalid-variable.vert new file mode 100644 index 0000000..bd684af --- /dev/null +++ b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/invalid-variable.vert @@ -0,0 +1,20 @@ +// [config] +// expect_result: fail +// glsl_version: 1.40 +// require_extensions: GL_ARB_enhanced_layouts +// [end config] +// +// From the GL_ARB_enhanced_layouts spec: +// +// "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." + +#version 140 +#extension GL_ARB_enhanced_layouts: require + +layout(xfb_offset = 2) out vec4 var; + +void main() +{ +} diff --git a/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/named-block-member.vert b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/named-block-member.vert new file mode 100644 index 0000000..91c6cd0 --- /dev/null +++ b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/named-block-member.vert @@ -0,0 +1,23 @@ +// [config] +// expect_result: pass +// glsl_version: 1.50 +// require_extensions: GL_ARB_enhanced_layouts +// [end config] +// +// From the GL_ARB_enhanced_layouts spec: +// +// "The *xfb_offset* qualifier assigns a byte offset within a transform +// feedback buffer. Only variables, block members, or blocks can be +// qualified with *xfb_offset*." + +#version 150 +#extension GL_ARB_enhanced_layouts: require + +out block { + vec4 var1; + layout(xfb_offset = 0) vec4 var2; +} block_name; + +void main() +{ +} diff --git a/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/named-block.vert b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/named-block.vert new file mode 100644 index 0000000..086cbef --- /dev/null +++ b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/named-block.vert @@ -0,0 +1,23 @@ +// [config] +// expect_result: pass +// glsl_version: 1.50 +// require_extensions: GL_ARB_enhanced_layouts +// [end config] +// +// From the GL_ARB_enhanced_layouts spec: +// +// "The *xfb_offset* qualifier assigns a byte offset within a transform +// feedback buffer. Only variables, block members, or blocks can be +// qualified with *xfb_offset*." + +#version 150 +#extension GL_ARB_enhanced_layouts: require + +layout(xfb_offset = 16) out block { + vec4 var1; + layout(xfb_offset = 0) vec4 var2; +} block_name; + +void main() +{ +} diff --git a/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/struct-with-double.vert b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/struct-with-double.vert new file mode 100644 index 0000000..013c13c --- /dev/null +++ b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/struct-with-double.vert @@ -0,0 +1,28 @@ +// [config] +// expect_result: pass +// glsl_version: 1.50 +// require_extensions: GL_ARB_enhanced_layouts GL_ARB_gpu_shader_fp64 +// [end config] +// +// From the GL_ARB_enhanced_layouts spec: +// +// "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." + +#version 150 +#extension GL_ARB_enhanced_layouts: require +#extension GL_ARB_gpu_shader_fp64: require + +struct S { + float x; + double y; +}; + +layout(xfb_offset = 8) out S s; + +void main() +{ +} diff --git a/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/type-arrays.vert b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/type-arrays.vert new file mode 100644 index 0000000..ee095f6 --- /dev/null +++ b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/type-arrays.vert @@ -0,0 +1,34 @@ +// [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." + +#version 150 +#extension GL_ARB_enhanced_layouts: require + +struct S { + vec3 x; +}; + +layout(xfb_offset = 32) out float var1[2]; + +layout(xfb_offset = 0) out vec4 var2[2]; + +layout(xfb_offset = 64) out mat4 var3[2]; + +layout(xfb_offset = 40) out S s[2]; + +void main() +{ +} diff --git a/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/types.vert b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/types.vert new file mode 100644 index 0000000..13f725a --- /dev/null +++ b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/types.vert @@ -0,0 +1,34 @@ +// [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." + +#version 150 +#extension GL_ARB_enhanced_layouts: require + +struct S { + vec3 x; +}; + +layout(xfb_offset = 16) out float var1; + +layout(xfb_offset = 0) out vec4 var2; + +layout(xfb_offset = 32) out mat4 var3; + +layout(xfb_offset = 20) out S s; + +void main() +{ +} diff --git a/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/unsized-array.vert b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/unsized-array.vert new file mode 100644 index 0000000..dec7acd --- /dev/null +++ b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/unsized-array.vert @@ -0,0 +1,19 @@ +// [config] +// expect_result: fail +// glsl_version: 1.40 +// require_extensions: GL_ARB_enhanced_layouts +// [end config] +// +// From the GL_ARB_enhanced_layouts spec: +// +// "It is a compile-time error to apply xfb_offset to the declaration of an +// unsized array." + +#version 140 +#extension GL_ARB_enhanced_layouts: require + +layout(xfb_offset = 0) out vec4 var[]; + +void main() +{ +} diff --git a/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/variable.vert b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/variable.vert new file mode 100644 index 0000000..5e639e7 --- /dev/null +++ b/tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/variable.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 *xfb_offset* qualifier assigns a byte offset within a transform +// feedback buffer. Only variables, block members, or blocks can be +// qualified with *xfb_offset*." + +#version 140 +#extension GL_ARB_enhanced_layouts: require + +layout(xfb_offset = 16) out vec4 var1; + +void main() +{ +} -- 2.5.0 _______________________________________________ Piglit mailing list Piglit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/piglit