[Piglit] Plan for enabling more tests in concurrent mode

Paul Berry stereotype441 at gmail.com
Fri Aug 24 11:39:37 PDT 2012


On 23 August 2012 17:27, Chris Forbes <chrisf at ijw.co.nz> wrote:

> Hello
>
> I sent in a pile of random patches some time ago working toward having
> more of the tests support -fbo. This is important on WMs which don't
> give you the size you ask for [pretty much any tiling WM].
>

Sorry I didn't notice those.  I will try to keep a better eye out for your
upcoming patches.  I am definitely in favor of this idea--even for those of
us who don't use tiling WMs, the tests that support -fbo run much faster,
since they can run concurrently and they don't tie up GPU time in the
compositor.


>
> I realize that was a bit chaotic, so I'm starting over, making the
> following changes:
>
> - glutSwapBuffers gets replaced with piglit_present_results, and moved
> to the right place if it's somewhere odd [there's a couple of cases
> where pixels get read after the buffer swap, which seems bogus].
>

This sounds like a good idea, and yes, reading pixels after glutSwapBuffers
is definitely bogus (in most cases it will lead to undefined results and
hence sporadic failures)--I didn't realize we still had any tests that did
that.


>
> - unguarded glutKeyboardFunc moved to being consistently conditional
> on !piglit_automatic. In most cases there is already a suitable block
> because the test emits some keyboard instructions in non-automatic
> mode
>

BTW, we are hoping to reduce the use of glutKeyboardFunc as much as
possible because it gets in the use of Waffle, so if you happen to notice
some opportunities to get rid of glutKeyboardFunc entirely (or at least
take some steps in that direction), feel free.


>
> - use of glutReshapeFunc converted to appropriate piglit_*_projection
> in piglit_display
>

Are you talking about adding calls to the piglit_*_projection functions, or
simply moving the existing calls from the reshape functions to
piglit_display so that the reshape functions can be removed?  I'm
definitely in favor of the latter.  But adding piglit_*_projection function
calls is problematic because those functions rely on deprecated
functionality, and we're trying as much as possible to reduce Piglit's
dependence on deprecated functionality so that we can start testing GLES
2.0, GLES 3.0, and forward compatible contexts.


>
> And some tidiness things:
>
> - spurious glFlush/glFinish removed
>
> - raw glReadPixels converted to piglit_probe_*
>
> - handrolled version checks converted to piglit_require_gl_version
>

These all sound like good ideas.


>
>
> Things I've yet to tackle:
>
> - there's a few random tests which don't use the framework at all
> (texline is particularly weird, unused and perhaps just broken now?)
>

I would love to see these tests modernized.


> - glean tests -- it would be nice if these could be run offscreen, but
> will take some more doing
>
- it seems that the testrunner can jam at the end of the run, in some
> rare cases. This gets worse with more concurrent tests.
> - the choice of projections varies wildly between tests
>
> Will follow up with actual patches shortly, and would appreciate
> feedback on whether this is a sensible thing to do / traps / how to do
> this for glean / etc.
>

Cool.  Looking forward to it.

BTW, not to derail your plans (since I like the direction you're headed),
but there's another possible approach that might deal with the tiling WM
problems with a lot less effort.  Assuming the problem we are trying to
address is the WM giving us a larger window than we requested*, what if we
change the default resize function so that instead of updating
piglit_width, piglit_height, and the viewport, it leaves them unchanged?
The vast majority of tests should still work in this case; they just won't
render to the entire window anymore.

*I think this is a safe assumption because most (all?) tests that use a
large window do so because they actually *need* that many pixels to do the
test they are trying to do.  In which case, if the WM gives them a smaller
size than they request, we're screwed anyway.  In fact, maybe what we
should do in this case is just have the default resize function print out a
message explaining that the window wasn't big enough to do the test, and
exit with a PIGLIT_WARN.  And then when we run into those warnings, we
should think about reducing the window size requirements of those tests.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/piglit/attachments/20120824/f2838d27/attachment.html>


More information about the Piglit mailing list