From: Conor McCarthy <cmccarthy(a)codeweavers.com> Microsoft recommends waking after unlocking for performance reasons. That may or may not apply here but it is good practice. --- dlls/dxgi/swapchain.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dlls/dxgi/swapchain.c b/dlls/dxgi/swapchain.c index ca7e89e1e56..413935db869 100644 --- a/dlls/dxgi/swapchain.c +++ b/dlls/dxgi/swapchain.c @@ -2346,8 +2346,8 @@ static HRESULT d3d12_swapchain_present(struct d3d12_swapchain *swapchain, EnterCriticalSection(&swapchain->worker_cs); list_add_tail(&swapchain->worker_ops, &op->entry); - WakeAllConditionVariable(&swapchain->worker_cv); LeaveCriticalSection(&swapchain->worker_cs); + WakeAllConditionVariable(&swapchain->worker_cv); ++swapchain->frame_number; if ((frame_latency_event = swapchain->frame_latency_event)) -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/5830