[Piglit] [PATCH] Adjust draw-pixel-with-texture to ensure glTexCoord is taken into account.

Brian Paul brianp at vmware.com
Wed Mar 25 09:03:21 PDT 2015


On 03/23/2015 11:07 PM, Matthew Dawson wrote:
> The old version of the test assumed the glTexCoord call was being properly
> used in the system.  However, at least in mesa, it is easy for an
> implementation to ignore the given coordinate.  Thus setup the texture and
> texture coordinate to ensure it is respected.
>
> Also call glWindowPos2i, to ensure the texture coordinates are actually put
> into the raster position state.
>
> V2:
>   - Add a glWindowPos2i call, to avoid undefined behaviour.
>   - Use the bottom left texel, to detect issues copying over the raster position.
>   - Change the pixels passed into glDrawPixels, to ensure each quadrant of
> the texture is visibly different.
>   - Add explanatory comment about the texture coordinates.
>
> Reviewed-by: Brian Paul <brianp at vmware.com> (v1)
> ---
>   tests/general/draw-pixel-with-texture.c | 10 ++++++----
>   1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/tests/general/draw-pixel-with-texture.c b/tests/general/draw-pixel-with-texture.c
> index c03131e..dc9f213 100644
> --- a/tests/general/draw-pixel-with-texture.c
> +++ b/tests/general/draw-pixel-with-texture.c
> @@ -39,8 +39,8 @@ piglit_display(void)
>   {
>          GLboolean pass = GL_TRUE;
>          GLfloat tex_data[2 * 2 * 4] = {
> -               1, 0, 0, 1,     1, 0, 0, 1,
> -               1, 0, 0, 1,     1, 0, 0, 1,
> +               0, 0, 1, 1,     0, 1, 1, 1,
> +               0, 1, 0, 1,     1, 0, 0, 1,
>          };
>          GLfloat *pixels;
>          GLfloat expected[4] = {0.2, 0, 0, 1};
> @@ -53,13 +53,15 @@ piglit_display(void)
>          glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
>          glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
>
> -       glTexCoord2f(0.5, 0.5);
> +       // This is meant to grab the bottom left texel, at {1, 0, 0, 1}
> +       glTexCoord2f(0.75, 0.75);

The comment doesn't match the code.  For a 2x2 texture, the texcoord at 
(0.75, 0.75) would sample the upper-right texel.  What does the 
{1,0,0,1} part mean?

BTW, your patch doesn't apply cleanly to the current version.  The "-" 
lines in your patch have spaces for indentation instead of tabs.


> +       glWindowPos2i(0, 0);
>          glEnable(GL_TEXTURE_2D);
>
>          for (i = 0; i < SCREEN_SIZE_IN_PIXELS; i += 4) {
>                  pixels[i + 0] = 0.2;
>                  pixels[i + 1] = 1;
> -               pixels[i + 2] = 0;
> +               pixels[i + 2] = 0.4;
>                  pixels[i + 3] = 1;
>          }
>
>
>
>
> _______________________________________________
> Piglit mailing list
> Piglit at lists.freedesktop.org
> https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.freedesktop.org_mailman_listinfo_piglit&d=AwIGaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=T0t4QG7chq2ZwJo6wilkFznRSFy-8uDKartPGbomVj8&m=yYpQyc4adHg9NgaBzGd9iwTxc2ypZID899DA7Ya4HmU&s=0oFeVktXWwmRSSTuqtxKqAevJ5XQ2DKzxQxsjb-2bBg&e=
>



More information about the Piglit mailing list