diff --git a/src/d3d9/d3d9_common_texture.h b/src/d3d9/d3d9_common_texture.h index 57446453c..e981d8fd2 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 a939b688a..bdaf31779 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 a142e4361..f8b050cdc 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; }