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 | |
parent | 247d5a8e94787aad8a91f447853539f7932a99f5 (diff) |
mesa/glthread: enable immediate mode
Reviewed-by: Timothy Arceri <[email protected]>
-rw-r--r-- | src/mapi/glapi/gen/gl_API.xml | 2 | ||||
-rw-r--r-- | src/mesa/vbo/vbo_exec_api.c | 14 |
2 files changed, 11 insertions, 5 deletions
diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml index aae9a5835db..929e5f6b024 100644 --- a/src/mapi/glapi/gen/gl_API.xml +++ b/src/mapi/glapi/gen/gl_API.xml @@ -1148,7 +1148,7 @@ <glx rop="3"/> </function> - <function name="Begin" deprecated="3.1" exec="dynamic" marshal_fail="true"> + <function name="Begin" deprecated="3.1" exec="dynamic"> <param name="mode" type="GLenum"/> <glx rop="4"/> </function> 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); } |