radeonsi: don't flush asynchronously for fence_server_signal

See the comment.

Fixes: 21b3a234 - mesa: fix SignalSemaphoreEXT behavior

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18223>
(cherry picked from commit da68678171)
This commit is contained in:
Marek Olšák
2022-09-20 16:23:41 -04:00
committed by Dylan Baker
parent ed090af4dc
commit 6e4ff8b3a8
2 changed files with 5 additions and 2 deletions

View File

@@ -2767,7 +2767,7 @@
"description": "radeonsi: don't flush asynchronously for fence_server_signal",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "21b3a234048a270e7999f8e70e25091c599dd3eb"
},

View File

@@ -571,8 +571,11 @@ static void si_fence_server_signal(struct pipe_context *ctx, struct pipe_fence_h
* operation.
*
* Forces a flush even if the GFX CS is empty.
*
* The flush must not be asynchronous because the kernel must receive
* the scheduled "signal" operation before any wait.
*/
si_flush_all_queues(ctx, NULL, PIPE_FLUSH_ASYNC, true);
si_flush_all_queues(ctx, NULL, 0, true);
}
static void si_fence_server_sync(struct pipe_context *ctx, struct pipe_fence_handle *fence)