From: Chia-I Wu Date: Thu, 28 Jan 2010 08:49:40 +0000 (+0800) Subject: egl: Correctly unbind contexts in eglReleaseThread. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=45ba53324341234144ca02122bf2c0b5ef58c361;hp=17330479b39409a63a06ec9e6b0f8e28b585db12;p=mesa.git egl: Correctly unbind contexts in eglReleaseThread. MakeCurrent unbinds the current context of the current API. Modify the current API to make sure all contexts are correctly unbound. --- diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c index d0f9749f84f..7e77ef1f038 100644 --- a/src/egl/main/eglapi.c +++ b/src/egl/main/eglapi.c @@ -997,6 +997,7 @@ eglReleaseThread(void) /* unbind current contexts */ if (!_eglIsCurrentThreadDummy()) { _EGLThreadInfo *t = _eglGetCurrentThread(); + EGLint api_index = t->CurrentAPIIndex; EGLint i; for (i = 0; i < _EGL_API_NUM_APIS; i++) { @@ -1004,9 +1005,12 @@ eglReleaseThread(void) if (ctx) { _EGLDisplay *disp = ctx->Resource.Display; _EGLDriver *drv = disp->Driver; + t->CurrentAPIIndex = i; (void) drv->API.MakeCurrent(drv, disp, NULL, NULL, NULL); } } + + t->CurrentAPIIndex = api_index; } _eglDestroyCurrentThread();