From 29d88127090997dcac329d35c45bcacf9ae40d37 Mon Sep 17 00:00:00 2001 From: Robin Kertels Date: Mon, 21 Feb 2022 14:07:08 +0100 Subject: [PATCH] [d3d9] Don't set NeedsReadback for POOL_SYSMEM textures ... or in SetRenderTarget because we always do readback for render targets. --- src/d3d9/d3d9_common_texture.h | 2 +- src/d3d9/d3d9_device.cpp | 3 --- src/d3d9/d3d9_swapchain.cpp | 2 -- 3 files changed, 1 insertion(+), 6 deletions(-) diff --git a/src/d3d9/d3d9_common_texture.h b/src/d3d9/d3d9_common_texture.h index 57446453..e981d8fd 100644 --- a/src/d3d9/d3d9_common_texture.h +++ b/src/d3d9/d3d9_common_texture.h @@ -328,7 +328,7 @@ namespace dxvk { void SetNeedsReadback(UINT Subresource, bool value) { m_needsReadback.set(Subresource, value); } - bool NeedsReachback(UINT Subresource) const { return m_needsReadback.get(Subresource); } + bool NeedsReachback(UINT Subresource) const { return m_needsReadback.get(Subresource) && m_image != nullptr; } void MarkAllNeedReadback() { m_needsReadback.setAll(); } diff --git a/src/d3d9/d3d9_device.cpp b/src/d3d9/d3d9_device.cpp index a939b688..bdaf3177 100644 --- a/src/d3d9/d3d9_device.cpp +++ b/src/d3d9/d3d9_device.cpp @@ -849,7 +849,6 @@ namespace dxvk { cLevelExtent); }); - dstTexInfo->SetNeedsReadback(dst->GetSubresource(), true); TrackTextureMappingBufferSequenceNumber(dstTexInfo, dst->GetSubresource()); return D3D_OK; @@ -1234,8 +1233,6 @@ namespace dxvk { if (texInfo->IsAutomaticMip()) texInfo->SetNeedsMipGen(true); - - texInfo->SetNeedsReadback(rt->GetSubresource(), true); } if (originalAlphaSwizzleRTs != m_alphaSwizzleRTs) diff --git a/src/d3d9/d3d9_swapchain.cpp b/src/d3d9/d3d9_swapchain.cpp index a142e436..f8b050cd 100644 --- a/src/d3d9/d3d9_swapchain.cpp +++ b/src/d3d9/d3d9_swapchain.cpp @@ -469,8 +469,6 @@ namespace dxvk { cLevelExtent); }); - dstTexInfo->SetNeedsReadback(dst->GetSubresource(), true); - return D3D_OK; }