[Piglit] [PATCH] arb_clear_texture: add a trivial test

Ilia Mirkin imirkin at alum.mit.edu
Fri Mar 7 20:26:43 PST 2014


On Fri, Mar 7, 2014 at 8:02 PM, Eric Anholt <eric at anholt.net> wrote:
> Ilia Mirkin <imirkin at alum.mit.edu> writes:
>
>> On Fri, Mar 7, 2014 at 2:38 PM, Eric Anholt <eric at anholt.net> wrote:
>>> Ilia Mirkin <imirkin at alum.mit.edu> writes:
>
>>>
>>> Other than that, this is a nice simple test.  We're going to want an
>>> all-the-formats testcase before we land clear_texture in Mesa, but this
>>> is a good start.
>>
>> Absolutely. And testing glClearTexSubImage too (where the visual
>> representation may become more interesting). And an api-errors style
>> test. And I want to test various widths/heights, in case e.g. POT
>> works but NPOT doesn't. I'm thinking that 32 and 33 actually cover
>> most cases.
>
> This all sounds good!
>
>> Should I make these into subtests, or is it fine to just have the one
>> test? Long-term, should this 'simple' test go away entirely in favor
>> of a all-formats test that does it all?
>
> I think there's a lot to be said for having a dead simple sanity test
> test, along with all the complicated stuff.  When you're first lighting
> up the extension, having all the other variants in the way obscures the
> initial debugging.
>
> For similar reasons, I lean toward separate test files instead of
> subtests unless the code sharing is massive.  I'm trying to optimize for
> me debugging the driver in the future, not me writing the test now.  The
> bodies of tests don't change much over time, so there's less maintenance
> burden from code duplication than in most codebases we work on.

I'm trying to implement the piglit_draw_rect_tex suggestion (based on
ext_unpack_subimage.c), and am having a lot of trouble with the GL
basics. Here's the code that I have now:

program = piglit_build_simple_program(vertex_shader, fragment_shader);
glUseProgram(program);

... do the clears on texture[0] and texture[1] ...

/* Render both textures to the screen */
glBindFramebuffer(GL_FRAMEBUFFER, piglit_winsys_fbo);
glBindTexture(GL_TEXTURE_2D, texture[0]);
piglit_draw_rect_tex(0, 0, 32, 32, 0, 0, 32, 32);

glBindTexture(GL_TEXTURE_2D, texture[1]);
piglit_draw_rect_tex(32, 32, 32, 32, 0, 0, 32, 32);

This does not work. I'm sure the solution to this problem is quite
trivial, but I have no idea what to look for. Semi-relatedly, what
should the split between piglit_init and piglit_display be?

Thanks,

  -ilia


More information about the Piglit mailing list