From f804c6364dd11c87ea6136a9a07734a881401175 Mon Sep 17 00:00:00 2001 From: Joshua Ashton Date: Fri, 24 Jan 2020 05:43:31 +0000 Subject: [PATCH] [d3d9] Implement d3d9.allowDoNotWait --- src/d3d9/d3d9_device.cpp | 3 +++ src/d3d9/d3d9_options.cpp | 1 + src/d3d9/d3d9_options.h | 3 +++ 3 files changed, 7 insertions(+) diff --git a/src/d3d9/d3d9_device.cpp b/src/d3d9/d3d9_device.cpp index 03d460c09..3914eb178 100644 --- a/src/d3d9/d3d9_device.cpp +++ b/src/d3d9/d3d9_device.cpp @@ -3781,6 +3781,9 @@ namespace dxvk { if (unlikely(!m_d3d9Options.allowLockFlagReadonly)) Flags &= ~D3DLOCK_READONLY; + if (unlikely(!m_d3d9Options.allowDoNotWait)) + Flags &= ~D3DLOCK_DONOTWAIT; + if (unlikely((Flags & (D3DLOCK_DISCARD | D3DLOCK_NOOVERWRITE)) == (D3DLOCK_DISCARD | D3DLOCK_NOOVERWRITE))) Flags &= ~D3DLOCK_DISCARD; diff --git a/src/d3d9/d3d9_options.cpp b/src/d3d9/d3d9_options.cpp index a3c5c6986..61134880e 100644 --- a/src/d3d9/d3d9_options.cpp +++ b/src/d3d9/d3d9_options.cpp @@ -65,6 +65,7 @@ namespace dxvk { this->forceSwapchainMSAA = config.getOption ("d3d9.forceSwapchainMSAA", -1); this->forceAspectRatio = config.getOption("d3d9.forceAspectRatio", ""); + this->allowDoNotWait = config.getOption ("d3d9.allowDoNotWait", true); // If we are not Nvidia, enable general hazards. this->generalHazards = adapter == nullptr || !adapter->matchesDriver(DxvkGpuVendor::Nvidia, VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR, 0, 0); diff --git a/src/d3d9/d3d9_options.h b/src/d3d9/d3d9_options.h index e82441e17..7ead26d5e 100644 --- a/src/d3d9/d3d9_options.h +++ b/src/d3d9/d3d9_options.h @@ -119,6 +119,9 @@ namespace dxvk { /// Forces an MSAA level on the swapchain int32_t forceSwapchainMSAA; + + /// Allow D3DLOCK_DONOTWAIT + bool allowDoNotWait; }; } \ No newline at end of file