[Mesa-dev] [PATCH] egl/gallium: implemlent EGL_KHR_create_context.
Kenneth Graunke
kenneth at whitecape.org
Thu Jun 26 11:02:27 PDT 2014
On Thursday, June 26, 2014 07:31:20 PM Knut Andre Tidemann wrote:
> On 06/26/2014 07:25 PM, Ilia Mirkin wrote:
> > 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?
>
> No 4, is correct, to catch GL 4.x and up, while the rest of the
> statement takes care of 3.2 and up.
>
> >
> > Also, the convention used throughout mesa is to put a space after
> > keywords like 'if', so 'if (' vs 'if('.
> >
>
> I'll fix this.
>
> >> + (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+).
> >
>
> The way this is implemented in the intel egl driver and the
> EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR is only defind for 3.2 contexts and
> above (as noted in the documentation).
Right. The profile mechanism was introduced with 3.2.
3.1 is a total anomaly - by default, it removes all of the deprecated
functionality (like the 3.2 core profile). Implementations can add it back by
exposing the GL_ARB_compatibility extension. Apps just ask for 3.1 and get
one or the other, with little control over which they get.
Using 3.1 correctly is hard. 3.2 is much nicer.
--Ken
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20140626/993c1d00/attachment.sig>
More information about the mesa-dev
mailing list