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

Rob Clark robdclark at gmail.com
Mon Jan 29 20:08:17 UTC 2018


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?

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.

(Plus, I wonder what the odds of a driver supporting 3.1 compat but
not 3.2 core??)

BR,
-R

>> +        }
>> +
>> +        return core_ctx;
>> +    }
>>      case TYPE_COMPAT:
>>          eglBindAPI(EGL_OPENGL_API);
>>          return eglCreateContext(egl_dpy, cfg, EGL_NO_CONTEXT, &attribs[6]);
>> --
>> 2.14.3
>>
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list