summaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2018-11-10 01:18:30 -0500
committerMarek Olšák <[email protected]>2018-11-20 21:17:41 -0500
commit7f1cac7ba682410214289084dcc272167ca44e6b (patch)
tree50b22121055d4d4333242c127cfda4e69c22d44a /src/mesa
parent247d5a8e94787aad8a91f447853539f7932a99f5 (diff)
mesa/glthread: enable immediate mode
Reviewed-by: Timothy Arceri <[email protected]>
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/vbo/vbo_exec_api.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/mesa/vbo/vbo_exec_api.c b/src/mesa/vbo/vbo_exec_api.c
index 24bd1f0ba14..e46922ef859 100644
--- a/src/mesa/vbo/vbo_exec_api.c
+++ b/src/mesa/vbo/vbo_exec_api.c
@@ -803,11 +803,14 @@ vbo_exec_Begin(GLenum mode)
ctx->Driver.CurrentExecPrimitive = mode;
ctx->Exec = ctx->BeginEnd;
+
/* We may have been called from a display list, in which case we should
* leave dlist.c's dispatch table in place.
*/
- if (ctx->CurrentClientDispatch == ctx->OutsideBeginEnd) {
- ctx->CurrentClientDispatch = ctx->BeginEnd;
+ if (ctx->CurrentClientDispatch == ctx->MarshalExec) {
+ ctx->CurrentServerDispatch = ctx->Exec;
+ } else if (ctx->CurrentClientDispatch == ctx->OutsideBeginEnd) {
+ ctx->CurrentClientDispatch = ctx->Exec;
_glapi_set_dispatch(ctx->CurrentClientDispatch);
} else {
assert(ctx->CurrentClientDispatch == ctx->Save);
@@ -858,8 +861,11 @@ vbo_exec_End(void)
}
ctx->Exec = ctx->OutsideBeginEnd;
- if (ctx->CurrentClientDispatch == ctx->BeginEnd) {
- ctx->CurrentClientDispatch = ctx->OutsideBeginEnd;
+
+ if (ctx->CurrentClientDispatch == ctx->MarshalExec) {
+ ctx->CurrentServerDispatch = ctx->Exec;
+ } else if (ctx->CurrentClientDispatch == ctx->BeginEnd) {
+ ctx->CurrentClientDispatch = ctx->Exec;
_glapi_set_dispatch(ctx->CurrentClientDispatch);
}