Mesa (master): egl: Correctly unbind contexts in eglReleaseThread.

Chia-I Wu olv at kemper.freedesktop.org
Thu Jan 28 09:31:13 UTC 2010


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

Author: Chia-I Wu <olvaffe at gmail.com>
Date:   Thu Jan 28 16:49:40 2010 +0800

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.

---

 src/egl/main/eglapi.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c
index d0f9749..7e77ef1 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();




More information about the mesa-commit mailing list