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;