[Piglit] default piglit window size change

Brian Paul brianp at vmware.com
Wed Nov 7 09:38:18 PST 2012


On 11/07/2012 10:23 AM, Eric Anholt wrote:
> Brian Paul<brianp at vmware.com>  writes:
>
>> On 11/04/2012 01:11 PM, Eric Anholt wrote:
>>> Brian Paul<brianp at vmware.com>   writes:
>>>
>>>> On 11/02/2012 10:52 AM, Paul Berry wrote:
>>>>> On 2 November 2012 09:32, Brian Paul<brianp at vmware.com
>>>>> <mailto:brianp at vmware.com>>   wrote:
>>>>>
>>>>>
>>>>>       I think I've brought this up in the past.  On Windows, the minimum
>>>>>       width of a window is 116 pixels (at least in my current Win7
>>>>>       setup). A lot of piglit tests create 100x100 pixels and when
>>>>>       piglit creates the window, Win7 resizes it to 116x100.  The
>>>>>       framework code detects this change and reports:
>>>>>
>>>>>       Got spurious window resize in automatic run (100,100 to 116,100)
>>>>>       PIGLIT: {'result': 'warn'}
>>>>>
>>>>>       So a bunch of tests get the 'warn' result instead of being run
>>>>>       properly.  I think this changed at some point during the recent
>>>>>       framework/waffle overhaul.
>>>>>
>>>>>       My proposal for this is to set a default window size of 150x150 in
>>>>>       the piglit-framework-gl.h header:
>>>>>
>>>>>       --- a/tests/util/piglit-framework-__gl.h
>>>>>       +++ b/tests/util/piglit-framework-__gl.h
>>>>>       @@ -216,6 +216,13 @@ piglit_gl_test_run(int argc, char *argv[],
>>>>>
>>>>>                 \
>>>>>                         config.init = piglit_init;          \
>>>>>                         config.display = piglit_display;          \
>>>>>       +         \
>>>>>       +                /* Default window size.  Note: Win7's min window
>>>>>       width */    \
>>>>>       +               /* seems to be 116 pixels.  When the window size
>>>>>       is */       \
>>>>>       +                /* unexpectedly resized, tests are marked as
>>>>>       "WARN". */      \
>>>>>       +                /* Let's use a larger default to avoid that. */
>>>>>              \
>>>>>       +                config.window_width = 150;         \
>>>>>       +                config.window_height = 150;
>>>>>
>>>>>         #define PIGLIT_GL_TEST_CONFIG_END          \
>>>>>
>>>>>
>>>>>       And then remove these config lines from a bunch of tests:
>>>>>
>>>>>               config.window_width = 100;
>>>>>               config.window_height = 100;
>>>>>
>>>>>       Of course, I'll have to inspect these tests to make sure they
>>>>>       don't rely on that specific window size, but I bet few if any of
>>>>>       them do.
>>>>>
>>>>>       This change fixes things here.
>>>>>
>>>>>       Sound OK?
>>>>>
>>>>>       -Brian
>>>>>
>>>>>
>>>>> Sounds reasonable to me.  I like the idea of having a default window
>>>>> size, since a lot of piglit tests just paint the whole window with the
>>>>> same color, so for those tests the size is pretty much irrelevant :)
>>>>
>>>> And there's quite a few tests that don't draw anything at all.
>>>>
>>>> I'll post my first batch of patches soon.  There'll be more as I get time.
>>>
>>> I don't like how this turned out, really.  On our side, we'd like to see
>>> tests that don't care about size rendered to smaller buffers, since we
>>> run tests under simulation for HW bringup.  I don't like losing the
>>> information that the test author had about requested size, even though
>>> in many cases the author just copy and pasted.
>>>
>>> There are two things I'd like to see done with regards to test size:
>>
>> Hmm, I really don't have time to investigate and implement a more
>> elaborate solution right now.  And I think Chad should definitely be
>> involved in any such changes.  Chad, do you have time to look into
>> this in the near future?
>>
>> I'd really like to move forward with my changes as-is so we can get
>> things working on Windows.  I'd be happy to help with the follow-on
>> changes if we decide to do something fancier.
>
> I would prefer to just disable the gnome-shell workaround on windows for
> the moment instead.
>
>>> - Have a "I don't draw anything" flag (or maybe just ask for 1x1) in
>>>     tests that don't need the window system buffer.
>>>
>>> - Convert the remaining tests that aren't specific to window system
>>>     buffer interactions to run with an FBO as the framebuffer.  This
>>>     avoids window systems (including gnome-shell) screwing with our window
>>>     size, and should improve performance slightly if we take advantage of
>>>     surfaceless contexts.  Now that swapbuffers has been replaced, I think
>>>     this should be easy.
>>
>> One problem I have with this is losing the ability to see what's
>> drawn.  That can be super helpful for debugging a failure.
>
> Huh?  I was talking about converting more things to -auto -fbo for
> all.tests like we've been slowly doing.

I thought you meant running the tests w/ FBOs instead of windows all 
the time.

My wish-list item would be the option to run a test in -fbo mode and 
have the FBO image displayed in the window for debugging when some 
special flag is set.


>
>> But still, it's important to test window rendering too because of the
>> upside down orientation difference with windows vs. FBOs.  In the past
>> we've certainly had bugs in that area, and probably will in the future
>> too.  If the 'general' tests were run both in window and FBO mode
>> that'd probably catch most of the orientation bugs.
>
> I agree, though mostly it's been the other way around because we only
> test things in windows not fbos.  The solution to that problem is to
> explicitly test interactions of various kinds of drawing to all
> available window systems (GLX, EGL, fbos), while leaving most testing up
> to a default window system choice.

That's what I had in mind too.

-Brian


More information about the Piglit mailing list