GS/HW: Check if channel shuffling actually needs decorrecting.

Saves copies.
This commit is contained in:
lightningterror 2024-02-28 22:14:48 +01:00
parent f2b3db9cbc
commit 97237c963f
1 changed files with 11 additions and 2 deletions

View File

@ -5331,9 +5331,18 @@ __ri void GSRendererHW::DrawPrims(GSTextureCache::Target* rt, GSTextureCache::Ta
}
}
}
if (rt->m_last_draw == s_n)
else if (m_channel_shuffle)
{
if (m_conf.ps.tales_of_abyss_hle || (tex && tex->m_from_target && tex->m_from_target == rt && m_conf.ps.channel == ChannelFetch_ALPHA) || ((m_cached_ctx.FRAME.FBMSK & 0xFF000000) != 0xFF000000))
{
rt->RTADecorrect(rt);
m_conf.rt = rt->m_texture;
}
}
else if (rt->m_last_draw == s_n)
{
rt->m_rt_alpha_scale = false;
}
else
{
rt->RTADecorrect(rt);