egl: Correctly unbind contexts in eglReleaseThread.
[mesa.git] / src / egl / main / eglapi.c
index d0f9749f84f553e6d090b55fcd9ef95dc5cdede6..7e77ef1f038e40fb6404619ac0d47ecf73aecd96 100644 (file)
@@ -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();