[Piglit] [PATCH] arb-fragment-coord-conventions: test center shift correctness
Jose Fonseca
jfonseca at vmware.com
Sat Apr 27 08:39:48 PDT 2013
looks good to me. I ran into a similar problem using graw's examples for frag coord properties to bring up this functionality on llvmpipe, but I didn't notice piglit test behaved similarly at the time.
Jose
----- Original Message -----
> Modifies the pixel center tests to check that the pixel coordinates
> actually start at 0 / 0.5.
> Catches sign errors in center shift calculation (+-0.5).
> ---
> .../shaders/glsl-arb-fragment-coord-conventions.c | 18 ++++++++++--------
> 1 files changed, 10 insertions(+), 8 deletions(-)
>
> diff --git a/tests/shaders/glsl-arb-fragment-coord-conventions.c
> b/tests/shaders/glsl-arb-fragment-coord-conventions.c
> index 28c44a0..297b0e8 100644
> --- a/tests/shaders/glsl-arb-fragment-coord-conventions.c
> +++ b/tests/shaders/glsl-arb-fragment-coord-conventions.c
> @@ -51,8 +51,10 @@ static const float black[4] = {0.0, 0.0, 0.0, 0.0};
> static const float red[4] = {1.0, 0.0, 0.0, 0.0};
> static const float green[4] = {0.0, 1.0, 0.0, 0.0};
> static const float yellow[4] = {1.0, 1.0, 0.0, 0.0};
> -static const float gray25[4] = {0.25, 0.25, 0.0, 0.0};
> -static const float gray75[4] = {0.75, 0.75, 0.0, 0.0};
> +static const float gray25_l[4] = {0.25, 0.25, 0.0, 0.0};
> +static const float gray25_r[4] = {0.25, 0.25, 1.0, 0.0};
> +static const float gray75_l[4] = {0.75, 0.75, 0.5, 0.0};
> +static const float gray75_r[4] = {0.75, 0.75, 1.0, 0.0};
>
> static int test = 0;
>
> @@ -111,7 +113,7 @@ piglit_display(void)
> "void main(void) \n"
> "{ \n"
> " gl_FragColor = fract(gl_FragCoord) + 0.25; \n"
> - " gl_FragColor.z = 0.0; \n"
> + " gl_FragColor.z = (gl_FragCoord.x + gl_FragCoord.y) * 0.5; \n"
> "} \n";
>
> printf("Pixel center half integer\n");
> @@ -125,10 +127,10 @@ piglit_display(void)
> piglit_draw_rect(0, 0, WIDTH, HEIGHT);
>
> /* lower-left corner */
> - pass = piglit_probe_pixel_rgb(0, 0, gray75) && pass;
> + pass = piglit_probe_pixel_rgb(0, 0, gray75_l) && pass;
>
> /* upper-right corner */
> - pass = piglit_probe_pixel_rgb(WIDTH - 1, HEIGHT - 1, gray75) && pass;
> + pass = piglit_probe_pixel_rgb(WIDTH - 1, HEIGHT - 1, gray75_r) &&
> pass;
> }
>
> /* Pixel center integer */
> @@ -140,7 +142,7 @@ piglit_display(void)
> "void main(void) \n"
> "{ \n"
> " gl_FragColor = fract(gl_FragCoord) + 0.25; \n"
> - " gl_FragColor.z = 0.0; \n"
> + " gl_FragColor.z = (gl_FragCoord.x + gl_FragCoord.y) * 0.5; \n"
> "} \n";
>
> printf("Pixel center integer\n");
> @@ -154,10 +156,10 @@ piglit_display(void)
> piglit_draw_rect(0, 0, WIDTH, HEIGHT);
>
> /* lower-left corner */
> - pass = piglit_probe_pixel_rgb(0, 0, gray25) && pass;
> + pass = piglit_probe_pixel_rgb(0, 0, gray25_l) && pass;
>
> /* upper-right corner */
> - pass = piglit_probe_pixel_rgb(WIDTH - 1, HEIGHT - 1, gray25) && pass;
> + pass = piglit_probe_pixel_rgb(WIDTH - 1, HEIGHT - 1, gray25_r) &&
> pass;
> }
>
> /* Pixel origin upper left */
> --
> 1.7.3.4
>
> _______________________________________________
> Piglit mailing list
> Piglit at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/piglit
>
More information about the Piglit
mailing list