diff options
Diffstat (limited to 'src/mesa/main/glthread.c')
-rw-r--r-- | src/mesa/main/glthread.c | 7 |
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; } |