mirror of
https://gitee.com/openharmony/third_party_mesa3d
synced 2025-02-18 17:09:17 +00:00
glthread: leave dlist dispatch in place for Begin/End
If Begin/End are called from a display list make sure to leave the dlist.c's dispatch table in place just like the non-glthread code does. Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7335 Fixes: 7f1cac7ba682 ("mesa/glthread: enable immediate mode") Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19088> (cherry picked from commit 7dcdd519385aaa4fddfa1368fbbbc89c408befe3)
This commit is contained in:
parent
1a52e9be02
commit
18a57663d3
@ -94,7 +94,7 @@
|
||||
"description": "glthread: leave dlist dispatch in place for Begin/End",
|
||||
"nominated": true,
|
||||
"nomination_type": 1,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": "7f1cac7ba682410214289084dcc272167ca44e6b"
|
||||
},
|
||||
|
@ -855,7 +855,8 @@ _mesa_Begin(GLenum mode)
|
||||
* leave dlist.c's dispatch table in place.
|
||||
*/
|
||||
if (ctx->GLThread.enabled) {
|
||||
ctx->CurrentServerDispatch = ctx->Exec;
|
||||
if (ctx->CurrentServerDispatch == ctx->OutsideBeginEnd)
|
||||
ctx->CurrentServerDispatch = ctx->Exec;
|
||||
} else if (ctx->CurrentClientDispatch == ctx->OutsideBeginEnd) {
|
||||
ctx->CurrentClientDispatch = ctx->CurrentServerDispatch = ctx->Exec;
|
||||
_glapi_set_dispatch(ctx->CurrentClientDispatch);
|
||||
@ -914,7 +915,10 @@ _mesa_End(void)
|
||||
ctx->Exec = ctx->OutsideBeginEnd;
|
||||
|
||||
if (ctx->GLThread.enabled) {
|
||||
ctx->CurrentServerDispatch = ctx->Exec;
|
||||
if (ctx->CurrentServerDispatch == ctx->BeginEnd ||
|
||||
ctx->CurrentServerDispatch == ctx->HWSelectModeBeginEnd) {
|
||||
ctx->CurrentServerDispatch = ctx->Exec;
|
||||
}
|
||||
} else if (ctx->CurrentClientDispatch == ctx->BeginEnd ||
|
||||
ctx->CurrentClientDispatch == ctx->HWSelectModeBeginEnd) {
|
||||
ctx->CurrentClientDispatch = ctx->CurrentServerDispatch = ctx->Exec;
|
||||
|
Loading…
x
Reference in New Issue
Block a user