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

Ilia Mirkin imirkin at alum.mit.edu
Mon Jan 29 19:39:53 UTC 2018


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.

> +        }
> +
> +        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