From 7f1cac7ba682410214289084dcc272167ca44e6b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Sat, 10 Nov 2018 01:18:30 -0500 Subject: [PATCH] mesa/glthread: enable immediate mode Reviewed-by: Timothy Arceri --- src/mapi/glapi/gen/gl_API.xml | 2 +- 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 @@ - + 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); } -- 2.30.2