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

Knut Andre Tidemann knut.tidemann at gmail.com
Thu Jun 26 10:08:50 PDT 2014


---
 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) ||
+            (ctx->ClientMajorVersion == 3 && ctx->ClientMinorVersion >= 2)) &&
+            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



More information about the mesa-dev mailing list