Module: Mesa Branch: master Commit: 0ca0d5743fb42a956289a87efd4c8fcda88cf93a URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0ca0d5743fb42a956289a87efd4c8fcda88cf93a
Author: Beren Minor <[email protected]> Date: Thu Mar 20 08:36:34 2014 +0100 egl/main: Fix eglMakeCurrent when releasing context from current thread. EGL 1.4 Specification says that eglMakeCurrent(display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT) can be used to release the current thread's ownership on the surfaces and context. MESA's egl implementation was only accepting the parameters when the KHR_surfaceless_context extension is supported. [chadv] Add quote from the EGL 1.4 spec. Cc: "10,1, 10.2" <[email protected]> Reviewed-by: Chad Versace <[email protected]> --- src/egl/main/eglapi.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c index 27d0802..7846814 100644 --- a/src/egl/main/eglapi.c +++ b/src/egl/main/eglapi.c @@ -524,8 +524,12 @@ eglMakeCurrent(EGLDisplay dpy, EGLSurface draw, EGLSurface read, if (!context && ctx != EGL_NO_CONTEXT) RETURN_EGL_ERROR(disp, EGL_BAD_CONTEXT, EGL_FALSE); if (!draw_surf || !read_surf) { - /* surfaces may be NULL if surfaceless */ - if (!disp->Extensions.KHR_surfaceless_context) + /* From the EGL 1.4 (20130211) spec: + * + * To release the current context without assigning a new one, set ctx + * to EGL_NO_CONTEXT and set draw and read to EGL_NO_SURFACE. + */ + if (!disp->Extensions.KHR_surfaceless_context && ctx != EGL_NO_CONTEXT) RETURN_EGL_ERROR(disp, EGL_BAD_SURFACE, EGL_FALSE); if ((!draw_surf && draw != EGL_NO_SURFACE) || _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
