[Piglit] [PATCH 1/6] shader_runner and glslparsertest: choose GL version more accurately.
Michel Dänzer
michel at daenzer.net
Tue Feb 19 03:52:25 PST 2013
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?
Note that e.g. the GLSL execution tests are still running, which seems a
bit inconsistent, though I'm certainly not suggesting you should skip
those as well! :)
P.S. Are you intentionally sending HTML e-mail?
--
Earthling Michel Dänzer | http://www.amd.com
Libre software enthusiast | Debian, X and DRI developer
More information about the Piglit
mailing list