[Piglit] [PATCH] glsl-fs-pointcoord: add additional FS inputs
Brian Paul
brianp at vmware.com
Mon Feb 26 16:09:07 UTC 2018
Reviewed-by: Brian Paul <brianp at vmware.com>
On 02/26/2018 04:15 AM, Iago Toral Quiroga wrote:
> We have recently found a regression in the i965 driver related to
> gl_PointCoord which was not being caught by this test. This patch
> changes the test slightly so that we can expose the problem for
> future regression testing.
>
> The problem occured because the driver was not using the correct
> number of FS inputs to to program a certain piece of HW state, as
> it did not account for some inputs that require special treatment,
> such as gl_PointCoord.
>
> However, this test was not able to find this because the hardware
> also has a restriction by which it needs to program, at least,
> 2 FS inputs, so if we only have gl_PointCoord as input, which is
> what we had here, it would still work.
>
> This patch adds a couple of additional varyings so we have 3
> inputs in total, ensuring that we trigger the problem.
>
> Besides this, it also removes a sampler uniform that was not used
> in the fragment shader, and includes the GLSL version that was
> missing in the vertex shader.
> ---
> tests/shaders/glsl-fs-pointcoord.frag | 7 ++++++-
> tests/shaders/glsl-fs-pointcoord.vert | 8 ++++++++
> 2 files changed, 14 insertions(+), 1 deletion(-)
>
> diff --git a/tests/shaders/glsl-fs-pointcoord.frag b/tests/shaders/glsl-fs-pointcoord.frag
> index 4e242f01d..138f25883 100644
> --- a/tests/shaders/glsl-fs-pointcoord.frag
> +++ b/tests/shaders/glsl-fs-pointcoord.frag
> @@ -1,7 +1,12 @@
> #version 120
> -uniform sampler2D tex;
> +
> +varying vec4 var0;
> +varying vec4 var1;
>
> void main()
> {
> gl_FragColor = vec4(gl_PointCoord.xy * 1.1 - 0.05, 0, 0);
> +
> + if (var0 != vec4(0, 1, 2, 3) || var1 != vec4(4, 5, 6, 7))
> + gl_FragColor.z = 1; /* something is wrong */
> }
> diff --git a/tests/shaders/glsl-fs-pointcoord.vert b/tests/shaders/glsl-fs-pointcoord.vert
> index 92f5bde9c..66855544f 100644
> --- a/tests/shaders/glsl-fs-pointcoord.vert
> +++ b/tests/shaders/glsl-fs-pointcoord.vert
> @@ -1,5 +1,13 @@
> +#version 120
> +
> +varying vec4 var0;
> +varying vec4 var1;
> +
> void main()
> {
> gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
> +
> + var0 = vec4(0, 1, 2, 3);
> + var1 = vec4(4, 5, 6, 7);
> }
>
>
More information about the Piglit
mailing list