mirror of https://github.com/PCSX2/pcsx2.git
gsdx hw: add a special sub target invalidation for haunting ground
Fix a wrong blending/blooming Based on CRC to reduce impact on others games (speed)
This commit is contained in:
parent
31248da3d1
commit
cc4cc342c2
|
@ -732,6 +732,29 @@ void GSTextureCache::InvalidateVideoMem(GSOffset* off, const GSVector4i& rect, b
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Haunting ground write frame buffer 0x3000 and expect to write data to 0x3380
|
||||||
|
// Note: the game only does a 0 direct write. If some games expect some real data
|
||||||
|
// we are screwed.
|
||||||
|
if (m_renderer->m_game.title == CRC::HauntingGround) {
|
||||||
|
uint32 end_block = GSLocalMemory::m_psm[psm].bn(rect.width(), rect.height(), bp, bw);
|
||||||
|
auto type = RenderTarget;
|
||||||
|
|
||||||
|
for(auto i = m_dst[type].begin(); i != m_dst[type].end(); )
|
||||||
|
{
|
||||||
|
auto j = i++;
|
||||||
|
|
||||||
|
Target* t = *j;
|
||||||
|
if (t->m_TEX0.TBP0 > bp && t->m_end_block < end_block) {
|
||||||
|
m_dst[type].erase(j);
|
||||||
|
GL_CACHE("TC: Remove Sub Target(%s) %d (0x%x)", to_string(type),
|
||||||
|
t->m_texture ? t->m_texture->GetID() : 0,
|
||||||
|
t->m_TEX0.TBP0);
|
||||||
|
delete t;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
GSVector4i r;
|
GSVector4i r;
|
||||||
|
|
Loading…
Reference in New Issue