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

Paul Berry stereotype441 at gmail.com
Mon Feb 18 10:14:20 PST 2013

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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/piglit/attachments/20130218/0253f5ed/attachment.html>

More information about the Piglit mailing list