Mesa (gles3): egl: Implement front-end support for EGL_EXT_create_context_robustness

Paul Berry stereotype441 at kemper.freedesktop.org
Wed Aug 8 23:42:06 UTC 2012


Module: Mesa
Branch: gles3
Commit: 54a75ab732194a8348ed5d546bba5586a33375c4
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=54a75ab732194a8348ed5d546bba5586a33375c4

Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Thu Jul 19 15:08:06 2012 -0700

egl: Implement front-end support for EGL_EXT_create_context_robustness

Signed-off-by: Ian Romanick <ian.d.romanick at 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 f0620aa..ecb5d50 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;
+         }
+
+         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 09096f7..3a6f361 100644
--- a/src/egl/main/egldisplay.h
+++ b/src/egl/main/egldisplay.h
@@ -114,6 +114,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 31c3f75..c681bcf 100644
--- a/src/egl/main/eglmisc.c
+++ b/src/egl/main/eglmisc.c
@@ -117,6 +117,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
 }




More information about the mesa-commit mailing list