On 08/08/2012 10:57 AM, Ian Romanick wrote: > From: Ian Romanick <ian.d.roman...@intel.com> > > Signed-off-by: Ian Romanick <ian.d.roman...@intel.com> > --- > src/egl/main/eglcontext.c | 25 +++++++++++++++++++++++++ > src/egl/main/egldisplay.h | 2 ++ > src/egl/main/eglmisc.c | 2 ++ > 3 files changed, 29 insertions(+), 0 deletions(-) > > diff --git a/src/egl/main/eglcontext.c b/src/egl/main/eglcontext.c > index c9a9948..cb50de7 100644 > --- a/src/egl/main/eglcontext.c > +++ b/src/egl/main/eglcontext.c > @@ -169,6 +169,31 @@ _eglParseContextAttribList(_EGLContext *ctx, _EGLDisplay > *dpy, > ctx->ResetNotificationStrategy = val; > break; > > + case EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT: > + /* The EGL_EXT_create_context_robustness spec says: > + * > + * "[EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT] is only > + * meaningful for OpenGL ES contexts, and specifying it for > other > + * types of contexts will generate an EGL_BAD_ATTRIBUTE error." > + */ > + if (!dpy->Extensions.EXT_create_context_robustness > + || api != EGL_OPENGL_ES_API) { > + err = EGL_BAD_ATTRIBUTE; > + break; > + }
Yes, it does say that, but it doesn't make sense. From the same spec: "This extension allows creating an OpenGL or OpenGL ES context supporting robust buffer access behavior and a specified graphics reset notification behavior." If you can't specify a reset notification strategy on desktop GL, then the extension hasn't done what it set out to do. I would guess that the actual intent here is to disallow the token on EGL_OPENVG_API (where the whole notion is not defined), but allow it for the GL and ES APIs (where it is well defined). > + > + ctx->ResetNotificationStrategy = val; > + break; > + > + case EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT: > + if (!dpy->Extensions.EXT_create_context_robustness) { > + err = EGL_BAD_ATTRIBUTE; > + break; > + } > + > + ctx->Flags = EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR; > + break; > + > default: > err = EGL_BAD_ATTRIBUTE; > break; > diff --git a/src/egl/main/egldisplay.h b/src/egl/main/egldisplay.h > index ba62941..ccb1fbc 100644 > --- a/src/egl/main/egldisplay.h > +++ b/src/egl/main/egldisplay.h > @@ -112,6 +112,8 @@ struct _egl_extensions > EGLBoolean ANDROID_image_native_buffer; > > EGLBoolean NV_post_sub_buffer; > + > + EGLBoolean EXT_create_context_robustness; > }; > > > diff --git a/src/egl/main/eglmisc.c b/src/egl/main/eglmisc.c > index 1f7d9a0..b7599d0 100644 > --- a/src/egl/main/eglmisc.c > +++ b/src/egl/main/eglmisc.c > @@ -115,6 +115,8 @@ _eglUpdateExtensionsString(_EGLDisplay *dpy) > > _EGL_CHECK_EXTENSION(ANDROID_image_native_buffer); > > + _EGL_CHECK_EXTENSION(EXT_create_context_robustness); > + > _EGL_CHECK_EXTENSION(NV_post_sub_buffer); > #undef _EGL_CHECK_EXTENSION > } _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev