diff options
author | Marek Olšák <[email protected]> | 2018-11-10 01:18:30 -0500 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2018-11-20 21:17:41 -0500 |
commit | 7f1cac7ba682410214289084dcc272167ca44e6b (patch) | |
tree | 50b22121055d4d4333242c127cfda4e69c22d44a /src/mesa | |
parent | 247d5a8e94787aad8a91f447853539f7932a99f5 (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.c | 14 |
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); } |