summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/D3D/TextureCache.cpp
diff options
context:
space:
mode:
authorMarkus Wick <markus+github@selfnet.de>2015-01-28 09:33:12 +0100
committerMarkus Wick <markus+github@selfnet.de>2015-01-28 09:33:12 +0100
commitc559e9e13da13af8f4492d35946febfa1edad393 (patch)
tree9867253186487acd387d7985fd73a31c09a7130d /Source/Core/VideoBackends/D3D/TextureCache.cpp
parentbeaa9905a699694c7a111dbf694c47ece48fd273 (diff)
parent0030ad9ecfc356fd11b2a2bfa5565250dadbaed9 (diff)
Merge pull request #1974 from magumagu/efb-copy-d3d-unset
Fix D3D regression from PR1948.
Diffstat (limited to 'Source/Core/VideoBackends/D3D/TextureCache.cpp')
-rw-r--r--Source/Core/VideoBackends/D3D/TextureCache.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/Source/Core/VideoBackends/D3D/TextureCache.cpp b/Source/Core/VideoBackends/D3D/TextureCache.cpp
index 488bc3ecc0..73d45f9ad2 100644
--- a/Source/Core/VideoBackends/D3D/TextureCache.cpp
+++ b/Source/Core/VideoBackends/D3D/TextureCache.cpp
@@ -153,6 +153,10 @@ void TextureCache::TCacheEntry::FromRenderTarget(u32 dstAddr, unsigned int dstFo
else
D3D::SetPointCopySampler();
+ // Make sure we don't draw with the texture set as both a source and target.
+ // (This can happen because we don't unbind textures when we free them.)
+ D3D::stateman->UnsetTexture(texture->GetSRV());
+
D3D::context->OMSetRenderTargets(1, &texture->GetRTV(), nullptr);
// Create texture copy