summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/glthread.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/main/glthread.c')
-rw-r--r--src/mesa/main/glthread.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/mesa/main/glthread.c b/src/mesa/main/glthread.c
index 76eb0cf7dac..8877a695f0c 100644
--- a/src/mesa/main/glthread.c
+++ b/src/mesa/main/glthread.c
@@ -54,6 +54,8 @@ glthread_allocate_batch(struct gl_context *ctx)
static void
glthread_unmarshal_batch(struct gl_context *ctx, struct glthread_batch *batch)
{
+ _glapi_set_dispatch(ctx->CurrentServerDispatch);
+
free(batch->buffer);
free(batch);
}
@@ -156,6 +158,10 @@ _mesa_glthread_destroy(struct gl_context *ctx)
free(glthread);
ctx->GLThread = NULL;
+
+ /* Remove ourselves from the dispatch table. */
+ ctx->CurrentClientDispatch = ctx->CurrentServerDispatch;
+ _glapi_set_dispatch(ctx->CurrentClientDispatch);
}
void
@@ -183,6 +189,7 @@ _mesa_glthread_flush_batch(struct gl_context *ctx)
*/
if (false) {
glthread_unmarshal_batch(ctx, batch);
+ _glapi_set_dispatch(ctx->CurrentClientDispatch);
return;
}