From 31063252ebff5c5d4a1f720ac29dd8a444bb836c Mon Sep 17 00:00:00 2001
From: Joshua Ashton <joshua@froggi.es>
Date: Sun, 28 Feb 2021 15:06:23 +0000
Subject: [PATCH] [d3d9] Don't implicit discard if read locked

---
 src/d3d9/d3d9_device.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/d3d9/d3d9_device.cpp b/src/d3d9/d3d9_device.cpp
index c2b3a484..c04a16a8 100644
--- a/src/d3d9/d3d9_device.cpp
+++ b/src/d3d9/d3d9_device.cpp
@@ -4424,7 +4424,7 @@ namespace dxvk {
         const bool backed    = pResource->GetMapMode() == D3D9_COMMON_BUFFER_MAP_MODE_BUFFER;
         const bool doNotWait = Flags & D3DLOCK_DONOTWAIT;
 
-        bool doImplicitDiscard = backed && !doNotWait && pResource->GetLockCount() == 0;
+        bool doImplicitDiscard = backed && !doNotWait && pResource->GetLockCount() == 0 && !pResource->GetReadLocked();
 
         doImplicitDiscard = doImplicitDiscard && m_d3d9Options.allowImplicitDiscard;