Test that linking fails if the geometry shader accesses more components than are available.
ARB_geometry_shader4 spec 2.16.1: "However, a program object, containing a shader object that access more input vertices than are available for the input primitive type of the program object, will not link." --- .../input-overrun-lines-adjacency.shader_test | 40 ++++++++++++++++++++++ .../linker/input-overrun-lines.shader_test | 40 ++++++++++++++++++++++ .../linker/input-overrun-points.shader_test | 40 ++++++++++++++++++++++ .../input-overrun-triangles-adjacency.shader_test | 40 ++++++++++++++++++++++ .../linker/input-overrun-triangles.shader_test | 40 ++++++++++++++++++++++ 5 files changed, 200 insertions(+) create mode 100644 tests/spec/arb_geometry_shader4/linker/input-overrun-lines-adjacency.shader_test create mode 100644 tests/spec/arb_geometry_shader4/linker/input-overrun-lines.shader_test create mode 100644 tests/spec/arb_geometry_shader4/linker/input-overrun-points.shader_test create mode 100644 tests/spec/arb_geometry_shader4/linker/input-overrun-triangles-adjacency.shader_test create mode 100644 tests/spec/arb_geometry_shader4/linker/input-overrun-triangles.shader_test diff --git a/tests/spec/arb_geometry_shader4/linker/input-overrun-lines-adjacency.shader_test b/tests/spec/arb_geometry_shader4/linker/input-overrun-lines-adjacency.shader_test new file mode 100644 index 0000000..8508928 --- /dev/null +++ b/tests/spec/arb_geometry_shader4/linker/input-overrun-lines-adjacency.shader_test @@ -0,0 +1,40 @@ +[require] +GL >= 2.0 +GLSL >= 1.10 +GL_ARB_geometry_shader4 + +[vertex shader] +#version 110 + +attribute vec4 vertex; + +void main() +{ + gl_Position = vertex; +} + +[geometry shader] +#version 110 +#extension GL_ARB_geometry_shader4: enable + +void main() +{ + gl_Position = gl_PositionIn[4]; + EmitVertex(); +} + +[geometry layout] +input type GL_LINES_ADJACENCY +output type GL_POINTS +vertices out 1 + +[fragment shader] +#version 110 + +void main() +{ + gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0); +} + +[test] +link error diff --git a/tests/spec/arb_geometry_shader4/linker/input-overrun-lines.shader_test b/tests/spec/arb_geometry_shader4/linker/input-overrun-lines.shader_test new file mode 100644 index 0000000..352c0c8 --- /dev/null +++ b/tests/spec/arb_geometry_shader4/linker/input-overrun-lines.shader_test @@ -0,0 +1,40 @@ +[require] +GL >= 2.0 +GLSL >= 1.10 +GL_ARB_geometry_shader4 + +[vertex shader] +#version 110 + +attribute vec4 vertex; + +void main() +{ + gl_Position = vertex; +} + +[geometry shader] +#version 110 +#extension GL_ARB_geometry_shader4: enable + +void main() +{ + gl_Position = gl_PositionIn[2]; + EmitVertex(); +} + +[geometry layout] +input type GL_LINES +output type GL_POINTS +vertices out 1 + +[fragment shader] +#version 110 + +void main() +{ + gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0); +} + +[test] +link error diff --git a/tests/spec/arb_geometry_shader4/linker/input-overrun-points.shader_test b/tests/spec/arb_geometry_shader4/linker/input-overrun-points.shader_test new file mode 100644 index 0000000..6ac788b --- /dev/null +++ b/tests/spec/arb_geometry_shader4/linker/input-overrun-points.shader_test @@ -0,0 +1,40 @@ +[require] +GL >= 2.0 +GLSL >= 1.10 +GL_ARB_geometry_shader4 + +[vertex shader] +#version 110 + +attribute vec4 vertex; + +void main() +{ + gl_Position = vertex; +} + +[geometry shader] +#version 110 +#extension GL_ARB_geometry_shader4: enable + +void main() +{ + gl_Position = gl_PositionIn[1]; + EmitVertex(); +} + +[geometry layout] +input type GL_POINTS +output type GL_POINTS +vertices out 1 + +[fragment shader] +#version 110 + +void main() +{ + gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0); +} + +[test] +link error diff --git a/tests/spec/arb_geometry_shader4/linker/input-overrun-triangles-adjacency.shader_test b/tests/spec/arb_geometry_shader4/linker/input-overrun-triangles-adjacency.shader_test new file mode 100644 index 0000000..809947b --- /dev/null +++ b/tests/spec/arb_geometry_shader4/linker/input-overrun-triangles-adjacency.shader_test @@ -0,0 +1,40 @@ +[require] +GL >= 2.0 +GLSL >= 1.10 +GL_ARB_geometry_shader4 + +[vertex shader] +#version 110 + +attribute vec4 vertex; + +void main() +{ + gl_Position = vertex; +} + +[geometry shader] +#version 110 +#extension GL_ARB_geometry_shader4: enable + +void main() +{ + gl_Position = gl_PositionIn[6]; + EmitVertex(); +} + +[geometry layout] +input type GL_TRIANGLES_ADJACENCY +output type GL_POINTS +vertices out 1 + +[fragment shader] +#version 110 + +void main() +{ + gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0); +} + +[test] +link error diff --git a/tests/spec/arb_geometry_shader4/linker/input-overrun-triangles.shader_test b/tests/spec/arb_geometry_shader4/linker/input-overrun-triangles.shader_test new file mode 100644 index 0000000..01e2e0e --- /dev/null +++ b/tests/spec/arb_geometry_shader4/linker/input-overrun-triangles.shader_test @@ -0,0 +1,40 @@ +[require] +GL >= 2.0 +GLSL >= 1.10 +GL_ARB_geometry_shader4 + +[vertex shader] +#version 110 + +attribute vec4 vertex; + +void main() +{ + gl_Position = vertex; +} + +[geometry shader] +#version 110 +#extension GL_ARB_geometry_shader4: enable + +void main() +{ + gl_Position = gl_PositionIn[3]; + EmitVertex(); +} + +[geometry layout] +input type GL_TRIANGLES +output type GL_POINTS +vertices out 1 + +[fragment shader] +#version 110 + +void main() +{ + gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0); +} + +[test] +link error -- 1.8.1.2 _______________________________________________ Piglit mailing list Piglit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/piglit