summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/TextureCacheBase.cpp
diff options
context:
space:
mode:
authoriwubcode <iwubcode@users.noreply.github.com>2017-10-27 13:58:42 -0500
committeriwubcode <iwubcode@users.noreply.github.com>2017-11-17 22:11:33 -0600
commit8678e8ddd34e5d67ca08f2d6ec9a9e9aa61cf996 (patch)
treeba3db0611a20d869d47b984de1f3e4a892db1a20 /Source/Core/VideoCommon/TextureCacheBase.cpp
parentbe1853f95671987476fed1cad460e275bbf47713 (diff)
Texture Cache Base: Optimization to allow stitched or memory xfb textures to be looked up from cache directly if they were defined previously and their hash hasn't changed
Diffstat (limited to 'Source/Core/VideoCommon/TextureCacheBase.cpp')
-rw-r--r--Source/Core/VideoCommon/TextureCacheBase.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/Source/Core/VideoCommon/TextureCacheBase.cpp b/Source/Core/VideoCommon/TextureCacheBase.cpp
index 8d97bd759d..46e48673d0 100644
--- a/Source/Core/VideoCommon/TextureCacheBase.cpp
+++ b/Source/Core/VideoCommon/TextureCacheBase.cpp
@@ -1119,6 +1119,11 @@ TextureCacheBase::GetXFBTexture(u32 address, u32 width, u32 height, TextureForma
entry = CreateNormalTexture(tex_info.value());
+ // XFBs created for the purpose of being a container for textures from memory
+ // or as a container for overlapping textures, never need to be combined
+ // with other textures
+ entry->may_have_overlapping_textures = false;
+
// At this point, the XFB wasn't found in cache
// this means the address is most likely not pointing at an xfb copy but instead
// an area of memory. Let's attempt to stitch all entries in this memory space