From 38838f74287fe4346fe9399a755393919b9a63f3 Mon Sep 17 00:00:00 2001 From: Joshua Ashton Date: Fri, 21 Feb 2020 01:38:58 +0000 Subject: [PATCH] [d3d9] Synchronize present and wait for idle when invalidating a swapchain Lumino City calls CreateAdditionalSwapchain instead of the regular device reset functions. We were missing some needed synchronization here to make this work properly for this game. Impacts #1462 --- src/d3d9/d3d9_swapchain.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/d3d9/d3d9_swapchain.cpp b/src/d3d9/d3d9_swapchain.cpp index 28c68193..1f8274e4 100644 --- a/src/d3d9/d3d9_swapchain.cpp +++ b/src/d3d9/d3d9_swapchain.cpp @@ -559,8 +559,12 @@ namespace dxvk { if (hWindow == nullptr) hWindow = m_parent->GetWindow(); - if (m_presentParams.hDeviceWindow == hWindow) + if (m_presentParams.hDeviceWindow == hWindow) { m_presenter = nullptr; + + m_device->waitForSubmission(&m_presentStatus); + m_device->waitForIdle(); + } }