[Mesa-dev] [PATCH] egl/gallium: implemlent EGL_KHR_create_context.

Ilia Mirkin imirkin at alum.mit.edu
Thu Jun 26 10:25:10 PDT 2014


On Thu, Jun 26, 2014 at 1:08 PM, Knut Andre Tidemann
<knut.tidemann at gmail.com> wrote:
> ---
>  src/gallium/state_trackers/egl/common/egl_g3d.c     | 1 +
>  src/gallium/state_trackers/egl/common/egl_g3d_api.c | 8 ++++++++
>  2 files changed, 9 insertions(+)
>
> diff --git a/src/gallium/state_trackers/egl/common/egl_g3d.c b/src/gallium/state_trackers/egl/common/egl_g3d.c
> index d3f5e92..22b5e4a 100644
> --- a/src/gallium/state_trackers/egl/common/egl_g3d.c
> +++ b/src/gallium/state_trackers/egl/common/egl_g3d.c
> @@ -584,6 +584,7 @@ egl_g3d_initialize(_EGLDriver *drv, _EGLDisplay *dpy)
>     dpy->Extensions.KHR_fence_sync = EGL_TRUE;
>
>     dpy->Extensions.KHR_surfaceless_context = EGL_TRUE;
> +   dpy->Extensions.KHR_create_context = EGL_TRUE;
>
>     if (dpy->Platform == _EGL_PLATFORM_DRM) {
>        dpy->Extensions.MESA_drm_display = EGL_TRUE;
> diff --git a/src/gallium/state_trackers/egl/common/egl_g3d_api.c b/src/gallium/state_trackers/egl/common/egl_g3d_api.c
> index b19d899..4356ab8 100644
> --- a/src/gallium/state_trackers/egl/common/egl_g3d_api.c
> +++ b/src/gallium/state_trackers/egl/common/egl_g3d_api.c
> @@ -72,6 +72,11 @@ egl_g3d_choose_st(_EGLDriver *drv, _EGLContext *ctx,
>        break;
>     case EGL_OPENGL_API:
>        api = ST_API_OPENGL;
> +      if(((ctx->ClientMajorVersion > 4) ||

Did you mean > 3 here?

Also, the convention used throughout mesa is to put a space after
keywords like 'if', so 'if (' vs 'if('.

> +            (ctx->ClientMajorVersion == 3 && ctx->ClientMinorVersion >= 2)) &&

I don't know a whole lot about this, but you can get a core context
with 3.1 as well... (in fact, mesa only supports core contexts for
3.1+).

> +            ctx->Profile == EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR) {
> +         *profile = ST_PROFILE_OPENGL_CORE;
> +      }
>        break;
>     default:
>        _eglLog(_EGL_WARNING, "unknown client API 0x%04x", ctx->ClientAPI);
> @@ -166,6 +171,9 @@ egl_g3d_create_context(_EGLDriver *drv, _EGLDisplay *dpy, _EGLConfig *conf,
>     if (gconf)
>        stattribs.visual = gconf->stvis;
>
> +   if(gctx->base.Flags & EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR)
> +      stattribs.flags = ST_CONTEXT_FLAG_DEBUG;
> +
>     gctx->stapi = egl_g3d_choose_st(drv, &gctx->base, &stattribs.profile);
>     if (!gctx->stapi) {
>        FREE(gctx);
> --
> 2.0.0
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list