From d9b1995cf05c9bd8ab1b6bbcb884d37fbebf05d1 Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Thu, 22 Mar 2018 14:12:43 +0100 Subject: [PATCH] [d3d11] Do not forward D3D11_MAP_FLAG_DO_NOT_WAIT for mapped images Workaround for a regression in The Witcher 3 that was introduced in commit 53d557c2db9e51c98696840e19aced94687be0ea. May have a significant negative impact on performance in some games. --- src/d3d11/d3d11_context_imm.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/d3d11/d3d11_context_imm.cpp b/src/d3d11/d3d11_context_imm.cpp index 7642ec69e..b4fb8a4fe 100644 --- a/src/d3d11/d3d11_context_imm.cpp +++ b/src/d3d11/d3d11_context_imm.cpp @@ -222,7 +222,10 @@ namespace dxvk { if (pResource->GetMapMode() == D3D11_COMMON_TEXTURE_MAP_MODE_DIRECT) { const VkImageType imageType = mappedImage->info().type; - // Wait for the resource to become available + // Wait for the resource to become available. Forwarding + // DO_NOT_WAIT would break The Witcher 3 for some reason. + MapFlags &= ~D3D11_MAP_FLAG_DO_NOT_WAIT; + if (!WaitForResource(mappedImage, MapFlags)) return DXGI_ERROR_WAS_STILL_DRAWING;