On Fri, Jun 27, 2014 at 1:59 AM, Knut Andre Tidemann <knut.tidem...@gmail.com> wrote: > v2: fix style and wrong major version comparison. > v3: fix version check in context creation. > --- > src/gallium/state_trackers/egl/common/egl_g3d.c | 1 + > src/gallium/state_trackers/egl/common/egl_g3d_api.c | 12 ++++++++++++ > 2 files changed, 13 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..5e900cc 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; > + }
What if you only specify the core profile bit without specifying a version? I don't know that you're required to specify a version to get a core profile. The default major/minor versions are 1/0 and the default profile mask is core, so it seems like that should give you a core context by default. Maybe we're missing a test for this. > break; > default: > _eglLog(_EGL_WARNING, "unknown client API 0x%04x", ctx->ClientAPI); > @@ -166,6 +171,12 @@ 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; Need to handle EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR and EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR here too? _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev