mesa/glthread: enable immediate mode

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
This commit is contained in:
Marek Olšák 2018-11-10 01:18:30 -05:00
parent 247d5a8e94
commit 7f1cac7ba6
2 changed files with 11 additions and 5 deletions

View file

@ -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>

View file

@ -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);
}