diff options
author | Paul Berry <[email protected]> | 2012-10-03 15:39:52 -0700 |
---|---|---|
committer | Timothy Arceri <[email protected]> | 2017-03-16 14:14:18 +1100 |
commit | ef30ce97a6bc0a9a6e625df6964e1cdea0ccee4b (patch) | |
tree | 79491b67563fa5c631a9675092d10f26dff3ea79 /src/mesa/vbo/vbo_exec_api.c | |
parent | d8d81fbc31619f6ecf0a1b5ded22e5576e1d1739 (diff) |
mesa: Create pointers for multithread marshalling dispatch table.
This patch splits the context's CurrentDispatch pointer into two
pointers, CurrentClientDispatch, and CurrentServerDispatch, so that
when doing multithread marshalling, we can distinguish between the
dispatch table that's being used by the client (to serialize GL calls
into the marshal buffer) and the dispatch table that's being used by
the server (to execute the GL calls).
Acked-by: Timothy Arceri <[email protected]>
Acked-by: Marek Olšák <[email protected]>
Tested-by: Dieter Nützel <[email protected]>
Tested-by: Mike Lothian <[email protected]>
Diffstat (limited to 'src/mesa/vbo/vbo_exec_api.c')
-rw-r--r-- | src/mesa/vbo/vbo_exec_api.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/mesa/vbo/vbo_exec_api.c b/src/mesa/vbo/vbo_exec_api.c index fffff0b3bf0..f08fd4c32c6 100644 --- a/src/mesa/vbo/vbo_exec_api.c +++ b/src/mesa/vbo/vbo_exec_api.c @@ -797,11 +797,11 @@ vbo_exec_Begin(GLenum mode) /* We may have been called from a display list, in which case we should * leave dlist.c's dispatch table in place. */ - if (ctx->CurrentDispatch == ctx->OutsideBeginEnd) { - ctx->CurrentDispatch = ctx->BeginEnd; - _glapi_set_dispatch(ctx->CurrentDispatch); + if (ctx->CurrentClientDispatch == ctx->OutsideBeginEnd) { + ctx->CurrentClientDispatch = ctx->BeginEnd; + _glapi_set_dispatch(ctx->CurrentClientDispatch); } else { - assert(ctx->CurrentDispatch == ctx->Save); + assert(ctx->CurrentClientDispatch == ctx->Save); } } @@ -849,9 +849,9 @@ vbo_exec_End(void) } ctx->Exec = ctx->OutsideBeginEnd; - if (ctx->CurrentDispatch == ctx->BeginEnd) { - ctx->CurrentDispatch = ctx->OutsideBeginEnd; - _glapi_set_dispatch(ctx->CurrentDispatch); + if (ctx->CurrentClientDispatch == ctx->BeginEnd) { + ctx->CurrentClientDispatch = ctx->OutsideBeginEnd; + _glapi_set_dispatch(ctx->CurrentClientDispatch); } if (exec->vtx.prim_count > 0) { |