[Piglit] Core context tests and ARB_compatibility

Matt Turner mattst88 at gmail.com
Wed Feb 13 13:04:18 PST 2013

On Mon, Feb 11, 2013 at 11:32 PM, Alexander Monakov <amonakov at gmail.com> wrote:
> Hello,
> I think there is a problem in piglit implementation that "breaks" some
> tests on nvidia proprietary drivers, for instance "textureSize 140 fs
> sampler2D -auto -fbo" produces:
> piglit: info: Failed to create GL 3.1 core context
> GLSL 1.40 not supported.
> Stepping through the test in gdb I see that it first acquires a 3.1
> core context, but decides to throw it away since it has
> ARB_compatibility. Then the tests asks for a 1.0 compat context, and
> gets a 2.1 context with glsl-1.20.
> I'm told this test somehow works on amd proprietary drivers.
> Alexander

There's a comment in tests/util/piglit-framework-gl.h that explains this:

* Piglit handles a request for a GL 3.1 compatibility context as
* a special case.  As noted above, Waffle ignores the profile
* attribute when choosing a 3.1 config. However, the concept of
* "compatibility profile" is still applicable to 3.1 contexts and is
* indicated by the context's support for the GL_ARB_compatibility
* extension. Therefore, Piglit attempts to run under a GL 3.1
* compatibility context by first creating the context and then
* skipping the attempt if the context lacks the GL_ARB_compatibility
* extension.

So if you have ARB_compatibility, there's no way to get a core-only
3.1 context. You could, I suppose, request a forward-compatible
context but I'm not sure if there are things in 3.1 minus
ARB_compatibility that are deprecated and wouldn't be available.

More information about the Piglit mailing list