Mesa (master): egl: Ensure ResetNotificationStrategy matches for shared contexts.

Kenneth Graunke kwg at kemper.freedesktop.org
Wed Mar 1 18:28:18 UTC 2017


Module: Mesa
Branch: master
Commit: 4061bbccf2ad81612afbf8c3ded58c3b7146c5b2
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4061bbccf2ad81612afbf8c3ded58c3b7146c5b2

Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Tue Feb 28 17:20:52 2017 -0800

egl: Ensure ResetNotificationStrategy matches for shared contexts.

Fixes:
dEQP-EGL.functional.robustness.negative_context.invalid_robust_shared_context_creation

Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Eric Engestrom <eric.engestrom at imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov at collabora.com>
Cc: mesa-stable at lists.freedesktop.org

---

 src/egl/drivers/dri2/egl_dri2.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c
index 94b7c20..4bab6f1 100644
--- a/src/egl/drivers/dri2/egl_dri2.c
+++ b/src/egl/drivers/dri2/egl_dri2.c
@@ -1102,6 +1102,20 @@ dri2_create_context(_EGLDriver *drv, _EGLDisplay *disp, _EGLConfig *conf,
    if (!_eglInitContext(&dri2_ctx->base, disp, conf, attrib_list))
       goto cleanup;
 
+   /* The EGL_EXT_create_context_robustness spec says:
+    *
+    *    "Add to the eglCreateContext context creation errors: [...]
+    *
+    *     * If the reset notification behavior of <share_context> and the
+    *       newly created context are different then an EGL_BAD_MATCH error is
+    *       generated."
+    */
+   if (share_list && share_list->ResetNotificationStrategy !=
+                     dri2_ctx->base.ResetNotificationStrategy) {
+      _eglError(EGL_BAD_MATCH, "eglCreateContext");
+      goto cleanup;
+   }
+
    switch (dri2_ctx->base.ClientAPI) {
    case EGL_OPENGL_ES_API:
       switch (dri2_ctx->base.ClientMajorVersion) {




More information about the mesa-commit mailing list