[waffle] [PATCH 1/3] glx: don't use ARB_create_context with pre 3.0 contexts
Emil Velikov
emil.l.velikov at gmail.com
Fri Apr 15 22:35:14 UTC 2016
On 15 April 2016 at 20:04, Chad Versace <chad.versace at intel.com> wrote:
> On 04/06/2016 02:12 AM, Jose Fonseca wrote:
>> On 05/04/16 22:45, Emil Velikov wrote:
>>> This way if the user requests GL pre 3.0 context which lacks the
>>> flags/extra bits which require ARB_create_context one can safely fall
>>> back to the normal/legacy entry point.
>>>
>>> This resolves piglits on non 3.0 capable drivers such as classic swrast,
>>> nouveau_vieux and alike.
>>>
>>> Cc: Jose Fonseca <jfonseca at vmware.com>
>>> Cc: Ilia Mirkin <imirkin at alum.mit.edu>
>>> Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
>
>
>
>>> +static inline bool
>>> +glx_context_needs_arb_create_context(const struct wcore_config_attrs *attrs)
>>> +{
>>> + if (attrs->context_api == WAFFLE_CONTEXT_OPENGL &&
>>> + (wcore_config_attrs_version_ge(attrs, 30) ||
>>> + attrs->context_forward_compatible))
>>> + return true;
>>> +
>>> + if (attrs->context_debug)
>>> + return true;
>>> +
>>> + return false;
>>> +}
>
>> Looks good to me. Thanks.
>>
>> Reviewed-by: Jose Fonseca <jfonseca at vmware.com>
>
> I reviewed the thread on the Piglit list, and I'm in favor of this change.
>
> Jose and Emil, I believe the critical version should be 3.2, not 3.0. I don't
> understand why this patch uses 3.0 as the cutoff version. The
> GLX_ARB_create_context spec says:
>
> The presence of an OpenGL 3.2 or later implementation determines whether or
> not GLX_ARB_create_context_profile is required.
>
> And the WGL spec contains the same text.
>
> In other words, it never makes sense to request a 3.2 context without
> GLX_ARB_create_context, because the availability of 3.2 mandates the
> availability of GLX_ARB_create_context_profile.
Looking at another hunk from the spec makes me wonder:
created. Forward-compatible contexts are defined only for OpenGL
versions 3.0 and later.
So one cannot get a fwd compat context with 3.0 or 3.1, if they don't
support OpenGL 3.2. Not sure I'm getting why they choose to make it
its way - there must be something subtle :-) Regardless, updated
patches coming in a second.
-Emil
More information about the waffle
mailing list