diff --git a/src/d3d9/d3d9_device.cpp b/src/d3d9/d3d9_device.cpp index 7419cc483..64633b833 100644 --- a/src/d3d9/d3d9_device.cpp +++ b/src/d3d9/d3d9_device.cpp @@ -4175,6 +4175,10 @@ namespace dxvk { if (desc.Pool != D3DPOOL_DEFAULT) Flags &= ~(D3DLOCK_DISCARD | D3DLOCK_NOOVERWRITE); + // Ignore DISCARD if we are doing a partial lock. + if (OffsetToLock != 0 || (SizeToLock != 0 && SizeToLock != desc.Size)) + Flags &= ~D3DLOCK_DISCARD; + // Ignore READONLY if we are a WRITEONLY resource. if (desc.Usage & D3DUSAGE_WRITEONLY) Flags &= ~D3DLOCK_READONLY;