[Mesa-dev] [PATCH shaderdb 2/3] run: fallback to 3.1 core context

Matt Turner mattst88 at gmail.com
Mon Jan 29 21:14:27 UTC 2018


On Mon, Jan 29, 2018 at 12:08 PM, Rob Clark <robdclark at gmail.com> wrote:
> On Mon, Jan 29, 2018 at 2:39 PM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
>> On Mon, Jan 29, 2018 at 2:26 PM, Rob Clark <robdclark at gmail.com> wrote:
>>> If we can't create a 3.2 core context, fall back to a 3.1 context.
>>> ---
>>>  run.c | 17 +++++++++++++++--
>>>  1 file changed, 15 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/run.c b/run.c
>>> index 79d771e..2056ebd 100644
>>> --- a/run.c
>>> +++ b/run.c
>>> @@ -383,9 +383,22 @@ create_context(EGLDisplay egl_dpy, EGLConfig cfg, enum shader_type type)
>>>          EGL_NONE
>>>      };
>>>      switch (type) {
>>> -    case TYPE_CORE:
>>> +    case TYPE_CORE: {
>>>          eglBindAPI(EGL_OPENGL_API);
>>> -        return eglCreateContext(egl_dpy, cfg, EGL_NO_CONTEXT, attribs);
>>> +        EGLContext core_ctx =
>>> +                eglCreateContext(egl_dpy, cfg, EGL_NO_CONTEXT, attribs);
>>> +
>>> +        if (core_ctx == EGL_NO_CONTEXT) {
>>> +            static const EGLint attribs_31[] = {
>>> +                EGL_CONTEXT_MAJOR_VERSION_KHR, 3,
>>> +                EGL_CONTEXT_MINOR_VERSION_KHR, 1,
>>> +                EGL_NONE
>>> +            };
>>> +            core_ctx = eglCreateContext(egl_dpy, cfg, EGL_NO_CONTEXT, attribs_31);
>>
>> Should ensure that this context does not expose GL_ARB_compatibility.
>> Otherwise it's a compat-type context.
>>
>
> Hmm, does that mean there is no way to create a 3.1 core profile if a
> driver supports 3.1 compat?

As far as I know, yes, that's the case. Kinda nuts.

> btw, I wonder how much we really care.. afaict all this core/compat
> logic in shader-db runner must just be to avoid using a core context
> for shaders asking for glsl version <= 130 (presumably in case they
> use features removed from core).  So I guess it doesn't really matter
> if we ended up with a 3.1 compat profile.

Yeah, for our purposes I think just asking for a 3.1 profile and not
caring about what you get is fine.


More information about the mesa-dev mailing list