[Piglit] [PATCH] texture: add a 1:1 linear texture test case

Eric Anholt eric at anholt.net
Wed Oct 19 09:39:12 PDT 2011


On Wed, 19 Oct 2011 11:06:16 +0800, Yuanhan Liu <yuanhan.liu at linux.intel.com> wrote:
> To test that the 1:1 texture with filter set to linear is sampled
> correctly.
> 

> diff --git a/tests/all.tests b/tests/all.tests
> index 0248164..0579fc0 100644
> --- a/tests/all.tests
> +++ b/tests/all.tests
> @@ -609,6 +609,7 @@ add_plain_test(glx, 'glx-pixmap-crosscheck')
>  glx['glx-pixmap-crosscheck'].runConcurrent = True
>  
>  texturing = Group()
> +add_plain_test(texturing, '1-1-linear-texture')

If the test can be run concurrent (with -auto -fbo), then
add_concurrent_test means it will basically end up costing no runtime on
piglit :)

(I want to generally be doing that for new tests when it's easy, since
piglit runtime is an issue for all of us.)

>  add_plain_test(texturing, 'array-texture')
>  add_plain_test(texturing, 'copytexsubimage')
>  add_plain_test(texturing, 'copyteximage')
> diff --git a/tests/texturing/1-1-linear-texture.c b/tests/texturing/1-1-linear-texture.c
> new file mode 100644
> index 0000000..b9c2b23
> --- /dev/null
> +++ b/tests/texturing/1-1-linear-texture.c

> +static void * make_tex_data(void)
> +{
> +	int i;
> +	GLubyte *data = malloc(DATA_SIZE);
> +
> +	for (i = 0; i < DATA_SIZE; i++) {
> +		if (i % 4 == 3)
> +			data[i] = 255;
> +		else
> +			data[i] = random() % 256;
> +	}

I usually complain about random() in testcases because it means that
changing other parameters ends up changing the data.  In this case I
think it's fine, because we want to test high-intensity channels next to
low-intensity channels in all directions, and it would be trickier to do
it some other way.

> +	if (err_count) {
> +		fprintf(stderr, "Got %d error pixels(%d total), "
> +			        "just first %d pixels showed\n",

"shown"  (or maybe "printed") 

> +				err_count, size / 4,
> +				err_count > 10 ? 10 : err_count);
> +	}


> +	glBegin(GL_QUADS);
> +	  glTexCoord2f(0.0, 0.0);
> +	  glVertex2f(-1.0, -1.0);
> +	  glTexCoord2f(1.0, 0.0);
> +	  glVertex2f(1.0, -1.0);
> +	  glTexCoord2f(1.0, 1.0);
> +	  glVertex2f(1.0,  1.0);
> +	  glTexCoord2f(0.0, 1.0);
> +	  glVertex2f(-1.0,  1.0);
> +	glEnd();

This could be
piglit_draw_rect_tex(-1, -1, 2, 2,
                     0, 0, 1, 1);

There's just those two comments above ("shown" and add_concurrent_test),
then you can add:

Reviewed-by: Eric Anholt <eric at anholt.net>

Nice testcase!
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/piglit/attachments/20111019/f3082607/attachment.pgp>


More information about the Piglit mailing list