--- ...-redeclares-pervertex-in-after-other-usage.geom | 37 +++++++++++++++++++++ .../gs-redeclares-pervertex-in-after-usage.geom | 38 ++++++++++++++++++++++ ...redeclares-pervertex-out-after-other-usage.geom | 37 +++++++++++++++++++++ .../gs-redeclares-pervertex-out-after-usage.geom | 38 ++++++++++++++++++++++ ...redeclares-pervertex-out-after-other-usage.vert | 34 +++++++++++++++++++ .../vs-redeclares-pervertex-out-after-usage.vert | 35 ++++++++++++++++++++ 6 files changed, 219 insertions(+) create mode 100644 tests/spec/glsl-1.50/compiler/gs-redeclares-pervertex-in-after-other-usage.geom create mode 100644 tests/spec/glsl-1.50/compiler/gs-redeclares-pervertex-in-after-usage.geom create mode 100644 tests/spec/glsl-1.50/compiler/gs-redeclares-pervertex-out-after-other-usage.geom create mode 100644 tests/spec/glsl-1.50/compiler/gs-redeclares-pervertex-out-after-usage.geom create mode 100644 tests/spec/glsl-1.50/compiler/vs-redeclares-pervertex-out-after-other-usage.vert create mode 100644 tests/spec/glsl-1.50/compiler/vs-redeclares-pervertex-out-after-usage.vert
diff --git a/tests/spec/glsl-1.50/compiler/gs-redeclares-pervertex-in-after-other-usage.geom b/tests/spec/glsl-1.50/compiler/gs-redeclares-pervertex-in-after-other-usage.geom new file mode 100644 index 0000000..cc08280 --- /dev/null +++ b/tests/spec/glsl-1.50/compiler/gs-redeclares-pervertex-in-after-other-usage.geom @@ -0,0 +1,37 @@ +// [config] +// expect_result: fail +// glsl_version: 1.50 +// check_link: true +// [end config] +// +// From section 7.1 (Built-In Language Variables) of the GLSL 4.10 +// spec: +// +// If a built-in interface block is redeclared, it must appear in +// the shader before any use of any member included in the +// built-in declaration, or a compilation error will result. +// +// This appears to be a clarification to the behaviour established for +// gl_PerVertex by GLSL 1.50, therefore we test it using GLSL version +// 1.50. +// +// In this test the variable that we attempt to use before redeclaring +// gl_PerVertex is not included in the redeclaration of gl_PerVertex. + +#version 150 + +layout(triangles) in; +layout(triangle_strip, max_vertices = 3) out; + +float foo() +{ + return gl_in[0].gl_PointSize; +} + +in gl_PerVertex { + vec4 gl_Position; +} gl_in[]; + +void main() +{ +} diff --git a/tests/spec/glsl-1.50/compiler/gs-redeclares-pervertex-in-after-usage.geom b/tests/spec/glsl-1.50/compiler/gs-redeclares-pervertex-in-after-usage.geom new file mode 100644 index 0000000..df9a6f3 --- /dev/null +++ b/tests/spec/glsl-1.50/compiler/gs-redeclares-pervertex-in-after-usage.geom @@ -0,0 +1,38 @@ +// [config] +// expect_result: fail +// glsl_version: 1.50 +// check_link: true +// [end config] +// +// From section 7.1 (Built-In Language Variables) of the GLSL 4.10 +// spec: +// +// If a built-in interface block is redeclared, it must appear in +// the shader before any use of any member included in the +// built-in declaration, or a compilation error will result. +// +// This appears to be a clarification to the behaviour established for +// gl_PerVertex by GLSL 1.50, therefore we test it using GLSL version +// 1.50. +// +// In this test the variable that we attempt to use before redeclaring +// gl_PerVertex is included in the redeclaration of gl_PerVertex. + +#version 150 + +layout(triangles) in; +layout(triangle_strip, max_vertices = 3) out; + +float foo() +{ + return gl_in[0].gl_PointSize; +} + +in gl_PerVertex { + vec4 gl_Position; + float gl_PointSize; +} gl_in[]; + +void main() +{ +} diff --git a/tests/spec/glsl-1.50/compiler/gs-redeclares-pervertex-out-after-other-usage.geom b/tests/spec/glsl-1.50/compiler/gs-redeclares-pervertex-out-after-other-usage.geom new file mode 100644 index 0000000..63442d1 --- /dev/null +++ b/tests/spec/glsl-1.50/compiler/gs-redeclares-pervertex-out-after-other-usage.geom @@ -0,0 +1,37 @@ +// [config] +// expect_result: fail +// glsl_version: 1.50 +// check_link: true +// [end config] +// +// From section 7.1 (Built-In Language Variables) of the GLSL 4.10 +// spec: +// +// If a built-in interface block is redeclared, it must appear in +// the shader before any use of any member included in the +// built-in declaration, or a compilation error will result. +// +// This appears to be a clarification to the behaviour established for +// gl_PerVertex by GLSL 1.50, therefore we test it using GLSL version +// 1.50. +// +// In this test the variable that we attempt to use before redeclaring +// gl_PerVertex is not included in the redeclaration of gl_PerVertex. + +#version 150 + +layout(triangles) in; +layout(triangle_strip, max_vertices = 3) out; + +void foo() +{ + gl_PointSize = 1.0; +} + +out gl_PerVertex { + vec4 gl_Position; +}; + +void main() +{ +} diff --git a/tests/spec/glsl-1.50/compiler/gs-redeclares-pervertex-out-after-usage.geom b/tests/spec/glsl-1.50/compiler/gs-redeclares-pervertex-out-after-usage.geom new file mode 100644 index 0000000..36b8e77 --- /dev/null +++ b/tests/spec/glsl-1.50/compiler/gs-redeclares-pervertex-out-after-usage.geom @@ -0,0 +1,38 @@ +// [config] +// expect_result: fail +// glsl_version: 1.50 +// check_link: true +// [end config] +// +// From section 7.1 (Built-In Language Variables) of the GLSL 4.10 +// spec: +// +// If a built-in interface block is redeclared, it must appear in +// the shader before any use of any member included in the +// built-in declaration, or a compilation error will result. +// +// This appears to be a clarification to the behaviour established for +// gl_PerVertex by GLSL 1.50, therefore we test it using GLSL version +// 1.50. +// +// In this test the variable that we attempt to use before redeclaring +// gl_PerVertex is included in the redeclaration of gl_PerVertex. + +#version 150 + +layout(triangles) in; +layout(triangle_strip, max_vertices = 3) out; + +void foo() +{ + gl_PointSize = 1.0; +} + +out gl_PerVertex { + vec4 gl_Position; + float gl_PointSize; +}; + +void main() +{ +} diff --git a/tests/spec/glsl-1.50/compiler/vs-redeclares-pervertex-out-after-other-usage.vert b/tests/spec/glsl-1.50/compiler/vs-redeclares-pervertex-out-after-other-usage.vert new file mode 100644 index 0000000..419e57d --- /dev/null +++ b/tests/spec/glsl-1.50/compiler/vs-redeclares-pervertex-out-after-other-usage.vert @@ -0,0 +1,34 @@ +// [config] +// expect_result: fail +// glsl_version: 1.50 +// check_link: true +// [end config] +// +// From section 7.1 (Built-In Language Variables) of the GLSL 4.10 +// spec: +// +// If a built-in interface block is redeclared, it must appear in +// the shader before any use of any member included in the +// built-in declaration, or a compilation error will result. +// +// This appears to be a clarification to the behaviour established for +// gl_PerVertex by GLSL 1.50, therefore we test it using GLSL version +// 1.50. +// +// In this test the variable that we attempt to use before redeclaring +// gl_PerVertex is not included in the redeclaration of gl_PerVertex. + +#version 150 + +void foo() +{ + gl_PointSize = 1.0; +} + +out gl_PerVertex { + vec4 gl_Position; +}; + +void main() +{ +} diff --git a/tests/spec/glsl-1.50/compiler/vs-redeclares-pervertex-out-after-usage.vert b/tests/spec/glsl-1.50/compiler/vs-redeclares-pervertex-out-after-usage.vert new file mode 100644 index 0000000..e68eec6 --- /dev/null +++ b/tests/spec/glsl-1.50/compiler/vs-redeclares-pervertex-out-after-usage.vert @@ -0,0 +1,35 @@ +// [config] +// expect_result: fail +// glsl_version: 1.50 +// check_link: true +// [end config] +// +// From section 7.1 (Built-In Language Variables) of the GLSL 4.10 +// spec: +// +// If a built-in interface block is redeclared, it must appear in +// the shader before any use of any member included in the +// built-in declaration, or a compilation error will result. +// +// This appears to be a clarification to the behaviour established for +// gl_PerVertex by GLSL 1.50, therefore we test it using GLSL version +// 1.50. +// +// In this test the variable that we attempt to use before redeclaring +// gl_PerVertex is included in the redeclaration of gl_PerVertex. + +#version 150 + +void foo() +{ + gl_PointSize = 1.0; +} + +out gl_PerVertex { + vec4 gl_Position; + float gl_PointSize; +}; + +void main() +{ +} -- 1.8.4 _______________________________________________ Piglit mailing list Piglit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/piglit