[Piglit] [PATCH] compatibility: test vertex color clamping in geom and tess shaders

Marek Olšák maraeo at gmail.com
Wed Jun 27 02:20:20 UTC 2018


Reviewed-by: Marek Olšák <marek.olsak at amd.com>

Marek

On Fri, Jun 22, 2018 at 5:50 AM, Timothy Arceri <tarceri at itsqueeze.com> wrote:
> ---
>  .../tes-clamp-vertex-color.shader_test        | 76 +++++++++++++++++++
>  .../gs-clamp-vertex-color.shader_test         | 47 ++++++++++++
>  2 files changed, 123 insertions(+)
>  create mode 100644 tests/spec/arb_tessellation_shader/execution/compatibility/tes-clamp-vertex-color.shader_test
>  create mode 100644 tests/spec/glsl-1.50/execution/compatibility/gs-clamp-vertex-color.shader_test
>
> diff --git a/tests/spec/arb_tessellation_shader/execution/compatibility/tes-clamp-vertex-color.shader_test b/tests/spec/arb_tessellation_shader/execution/compatibility/tes-clamp-vertex-color.shader_test
> new file mode 100644
> index 000000000..9050bb1de
> --- /dev/null
> +++ b/tests/spec/arb_tessellation_shader/execution/compatibility/tes-clamp-vertex-color.shader_test
> @@ -0,0 +1,76 @@
> +# GL_ARB_color_buffer_float provides a way to disable vertex color clamping,
> +# but without it, the vertex colors must be clamped.
> +#
> +[require]
> +GL COMPAT >= 3.2
> +GLSL >= 1.50
> +GL_ARB_tessellation_shader
> +
> +[vertex shader]
> +#version 150 compatibility
> +
> +in vec4 piglit_vertex;
> +
> +void main()
> +{
> +   gl_Position = piglit_vertex;
> +}
> +
> +[tessellation control shader]
> +#version 150 compatibility
> +#extension GL_ARB_tessellation_shader: require
> +
> +layout(vertices = 3) out;
> +
> +out vec4 color[];
> +
> +void main() {
> +       gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position;
> +       gl_TessLevelOuter = float[4](1.0, 1.0, 1.0, 0.0);
> +       gl_TessLevelInner = float[2](0.0, 0.0);
> +       color[gl_InvocationID] = vec4(0, 1, 0, 1);
> +}
> +
> +[tessellation evaluation shader]
> +#version 150 compatibility
> +#extension GL_ARB_tessellation_shader: require
> +
> +layout(triangles) in;
> +
> +in vec4 color[];
> +
> +void main() {
> +       gl_Position = gl_in[0].gl_Position * gl_TessCoord[0]
> +                   + gl_in[1].gl_Position * gl_TessCoord[1]
> +                   + gl_in[2].gl_Position * gl_TessCoord[2];
> +
> +       gl_FrontColor = vec4(-2, -1, 0.5, 3);             /* (0, 0,   0.5, 1) */
> +       gl_FrontSecondaryColor = vec4(2, 0.5, 1.5, -0.5); /* (1, 0.5, 1,   0) */
> +}
> +
> +[vertex data]
> +piglit_vertex/float/2
> +-1.0 -1.0
> + 1.0 -1.0
> +-1.0  1.0
> +-1.0  1.0
> + 1.0 -1.0
> + 1.0  1.0
> +
> +[fragment shader]
> +#version 150 compatibility
> +
> +uniform vec4 arg0;
> +void main()
> +{
> +       gl_FragColor = (gl_Color + gl_SecondaryColor) * 0.5;
> +}
> +
> +[test]
> +clear color 0.1 0.1 0.1 0.1
> +clear
> +patch parameter vertices 3
> +draw arrays GL_PATCHES 0 6
> +#probe all rgba 0.0 1.0 0.0 1.0
> +#draw rect -1 -1 2 2
> +probe rgba 1 1 0.5 0.25 0.75 0.5
> diff --git a/tests/spec/glsl-1.50/execution/compatibility/gs-clamp-vertex-color.shader_test b/tests/spec/glsl-1.50/execution/compatibility/gs-clamp-vertex-color.shader_test
> new file mode 100644
> index 000000000..e7ba1d893
> --- /dev/null
> +++ b/tests/spec/glsl-1.50/execution/compatibility/gs-clamp-vertex-color.shader_test
> @@ -0,0 +1,47 @@
> +# GL_ARB_color_buffer_float provides a way to disable vertex color clamping,
> +# but without it, the vertex colors must be clamped.
> +#
> +[require]
> +GL COMPAT >= 3.2
> +GLSL >= 1.50
> +
> +[vertex shader]
> +#version 150 compatibility
> +
> +void main()
> +{
> +   gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
> +}
> +
> +[geometry shader]
> +#version 150 compatibility
> +
> +layout(triangles) in;
> +layout(triangle_strip, max_vertices = 3) out;
> +
> +varying float v;
> +
> +void main()
> +{
> +       for (int i = 0; i < 3; i++) {
> +               gl_Position = gl_in[i].gl_Position;
> +
> +               gl_FrontColor = vec4(-2, -1, 0.5, 3);             /* (0, 0,   0.5, 1) */
> +               gl_FrontSecondaryColor = vec4(2, 0.5, 1.5, -0.5); /* (1, 0.5, 1,   0) */
> +
> +               EmitVertex();
> +       }
> +}
> +
> +[fragment shader]
> +#version 150 compatibility
> +
> +uniform vec4 arg0;
> +void main()
> +{
> +       gl_FragColor = (gl_Color + gl_SecondaryColor) * 0.5;
> +}
> +
> +[test]
> +draw rect -1 -1 2 2
> +probe rgba 1 1 0.5 0.25 0.75 0.5
> --
> 2.17.1
>
> _______________________________________________
> Piglit mailing list
> Piglit at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/piglit


More information about the Piglit mailing list