summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/TextureCacheBase.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/VideoCommon/TextureCacheBase.cpp')
-rw-r--r--Source/Core/VideoCommon/TextureCacheBase.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/Source/Core/VideoCommon/TextureCacheBase.cpp b/Source/Core/VideoCommon/TextureCacheBase.cpp
index 21b2e792bd..8626749283 100644
--- a/Source/Core/VideoCommon/TextureCacheBase.cpp
+++ b/Source/Core/VideoCommon/TextureCacheBase.cpp
@@ -1014,7 +1014,10 @@ void TextureCache::CopyRenderTargetToTexture(u32 dstAddr, unsigned int dstFormat
entry->hash = GetHash64(dst, (int)entry->size_in_bytes, g_ActiveConfig.iSafeTextureCache_ColorSamples);
- // Invalidate all textures that overlap the range of our texture
+ // Invalidate all textures that overlap the range of our efb copy.
+ // Unless our efb copy has a weird stride, then we want avoid invalidating textures which
+ // we might be able to do a partial texture update on.
+ if (entry->memory_stride == entry->CacheLinesPerRow() * 32)
{
TexCache::iterator iter = textures_by_address.begin();
while (iter != textures_by_address.end())