From 482b06a95a0a2c9a58bc196eb3dd928d796853df Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 4 Apr 2014 07:03:31 +0100 Subject: [PATCH] glamor: Explain the weird EGL_NO_CONTEXT code. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Eric Anholt Reviewed-by: Michel Dänzer Reviewed-by: Adam Jackson --- glamor/glamor_egl.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/glamor/glamor_egl.c b/glamor/glamor_egl.c index 1755d23c8..54af2753e 100644 --- a/glamor/glamor_egl.c +++ b/glamor/glamor_egl.c @@ -97,8 +97,15 @@ glamor_egl_get_screen_private(ScrnInfoPtr scrn) static void glamor_egl_make_current(struct glamor_context *glamor_ctx) { + /* There's only a single global dispatch table in Mesa. EGL, GLX, + * and AIGLX's direct dispatch table manipulation don't talk to + * each other. We need to set the context to NULL first to avoid + * EGL's no-op context change fast path when switching back to + * EGL. + */ eglMakeCurrent(glamor_ctx->display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); + if (!eglMakeCurrent(glamor_ctx->display, EGL_NO_SURFACE, EGL_NO_SURFACE, glamor_ctx->ctx)) {