[Piglit] Core vs compat 3.1 contexts

Chad Versace chad.versace at intel.com
Wed Jun 18 14:42:39 PDT 2014


On Wed, Jun 18, 2014 at 12:29:09AM +0100, Emil Velikov wrote:
> On 17/06/14 23:50, Ian Romanick wrote:
> > On 06/16/2014 11:29 PM, Ilia Mirkin wrote:

> > This poses a problem for piglit.  We want to make tests for things that
> > don't have GL_ARB_compatibility, but we can't actually ask for that.
> > When a test says
> > 
> >     config.supports_gl_core_version = 31;
> > 
> > Waffle uses glXCreateContextAttribsARB to create 3.1 context.  It then
> > checks to see whether or not that context has GL_ARB_compatibility.  If
> > it does, then context creation fails.  Waffle will then try to create
> > some other kind of context if you set another supports_gl_* value.
> > 
> Waffle itself does not check for GL_ARB_compat when creating a context. The
> decision of what to do if the extension is available is left to the user -
> which imho is the only sane solution.
> 
> From the man page
>    If the chosen API is <constant>WAFFLE_CONTEXT_OPENGL</constant>
>    and version 3.1 is requested,
>    then the returned context may implement any of:
> 
>     * Version 3.1, with or without the GL_ARB_compatibility extension.
>     * The core profile of version 3.2 or greater.
> 
> > I think this is a bug in Waffle (or maybe piglit's usage of Waffle).  If
> > a 3.1 context with GL_ARB_compatibility was created, Waffle should try
> > again by asking for a 3.2 core profile.
> > 
> >> This seems to come from piglit_wfl_framework.c:special_case_gl_31.
> >>
> >> Unfortunately I know ~nothing about the subtleties of all this, but
> >> what's the way forward? Is the driver at fault? Piglit? FTR, changing
> >> the supports_gl_core_version to 32 fixes it.

This is not a bug in Waffle. Waffle does the only sane and correct
thing. Waffle could do the thing you want only if the OpenGL API were
more friendly to middleware libraries. Specifically, OpenGL needs to
provide an API with an explicit context parameter.

The bug is in Piglit.

I wrote a fix that gives Ilia the behavior he wants. I'm regression
testing the fix right now.


More information about the Piglit mailing list