From 7ac533a4d1f67275edbd5bb26b55d7f1b70eef80 Mon Sep 17 00:00:00 2001 From: Gregory Hainaut Date: Wed, 13 May 2015 20:01:25 +0200 Subject: [PATCH] gsdx-tc: invalidate half-RT src snow engines uses the RT as 2 half RT. --- plugins/GSdx/GSTextureCache.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/plugins/GSdx/GSTextureCache.cpp b/plugins/GSdx/GSTextureCache.cpp index 894ea44c98..a11ee070d2 100644 --- a/plugins/GSdx/GSTextureCache.cpp +++ b/plugins/GSdx/GSTextureCache.cpp @@ -338,6 +338,25 @@ void GSTextureCache::InvalidateVideoMem(GSOffset* off, const GSVector4i& rect, b m_src.RemoveAt(s); } } + + if ((bw == 20) && (psm == 2)) { + // try to detect render target bigger than 1024 Texels + uint32 bbp = bp + 0x140; + + const list& m = m_src.m_map[bbp >> 5]; + + for(list::const_iterator i = m.begin(); i != m.end(); ) + { + list::const_iterator j = i++; + + Source* s = *j; + + if(GSUtil::HasSharedBits(bbp, psm, s->m_TEX0.TBP0, s->m_TEX0.PSM)) + { + m_src.RemoveAt(s); + } + } + } } GSVector4i r;