[Piglit] [PATCH 1/6] shader_runner and glslparsertest: choose GL version more accurately.

Michel Dänzer michel at daenzer.net
Tue Feb 19 23:11:25 PST 2013


On Die, 2013-02-19 at 12:52 +0100, Michel Dänzer wrote: 
> On Mon, 2013-02-18 at 10:14 -0800, Paul Berry wrote: 
> > On 18 February 2013 07:53, Michel Dänzer <michel at daenzer.net> wrote:
> >         On Don, 2013-02-14 at 08:50 -0800, Paul Berry wrote:
> >         > Previously, both shader_runner and glslparsertest contained
> >         switch
> >         > statements that attempted to choose a GL version for testing
> >         based on
> >         > a GLSL version requirement, and those switch statements
> >         didn't choose
> >         > a GL version very accurately (for example, they converted
> >         GLSL version
> >         > 1.50 to GL version 3.1, which doesn't work).
> >         >
> >         > This patch replaces the switch statements with a single
> >         common
> >         > function (in piglit-util-gl-common) that does the right
> >         thing.
> >         
> >         
> >         This change caused quick-driver.tests to skip more than 2000
> >         tests on
> >         radeonsi (GL 2.1, GLSL 1.2). Almost all of the skipped tests
> >         were
> >         previously passing.
> >         
> >         Was this intended? 
> > 
> > 
> > No, this wasn't expected, and probably indicates a bug in the driver.
> > 
> > The specific behavioural change in Piglit is that previously, when
> > running a test that required GLSL 1.20, Piglit would request (via
> > Waffle) a GL 1.0 context.  Then it would query the context to see if
> > it supported GLSL 1.20.  After this patch, when running a test that
> > requires GLSL 1.20, Piglit requests a GL 2.1 context, and then skips
> > if a GL 2.1 context can't be created.  On an implementation that
> > supports GL 2.1 and GLSL 1.20, both methods should yield the same
> > results.
> > 
> > 
> > Note that there is code in core Mesa to determine, after context
> > creation, which versions of GL and GLSL are supported.  But at the
> > time of context creation, it is the responsibility of driver-specific
> > code to determine whether the requested context version is supported
> > (see, for instance, validate_context_version() in
> > src/mesa/drivers/dri/intel/intel_context.c).  This patch caused piglit
> > to base its decision for whether to skip on the driver-specific code
> > rather than the core Mesa code, so if there was a lurking bug in the
> > driver-specific code, this patch would have exposed it.
> > 
> > 
> > So my suspicion is that there's a bug in the driver-specific context
> > creation code causing it to incorrectly reject requests for GL 2.1
> > contexts.  Can you check if that's what's happening?  I don't know my
> > way around the radeon context creation code well enough to check it
> > myself.
> 
> AFAICT the Gallium DRI/OpenGL state trackers should handle that
> correctly. The problem seems to be that I'm testing on xserver 1.12,
> which doesn't support GLX_ARB_create_context. Is it really no longer
> feasible to run those tests without it? 

In particular, creating a 2.1 context doesn't really require
GLX_ARB_create_context, does it?


-- 
Earthling Michel Dänzer           |                   http://www.amd.com
Libre software enthusiast         |          Debian, X and DRI developer


More information about the Piglit mailing list