GS/TC: Don't expand block offsets to page size when small

This commit is contained in:
refractionpcsx2 2023-08-25 00:14:53 +01:00
parent 5df0c95e51
commit 13880354cf
1 changed files with 3 additions and 1 deletions

View File

@ -516,7 +516,9 @@ void GSTextureCache::DirtyRectByPage(u32 sbp, u32 spsm, u32 sbw, Target* t, GSVe
{
const int xblocks = in_rect.width() / src_info->bs.x;
const int yblocks = in_rect.height() / src_info->bs.y;
if ((!(block_offset & 0x7) && xblocks <= 4 && yblocks <= 2) || req_depth_offset)
// if !(block_offset & 0x7) is false, this is technically incorrect, but FFX hates it and starts making a mess, so it's better this way without adding complexity.
// TODO maybe: Add per block invalidation? ugh, would have to keep that to small blocks. 2 blocks in the case of FFX.
if ((xblocks <= 4 && yblocks <= 2) || req_depth_offset)
{
GSVector4i b2a_offset = GSVector4i::zero();
const GSVector4i target_rect = GSVector4i(0, 0, src_width, 2048);