GS/HW: Improve how we handle decorrection on texture shuffles.

Avoid copies if we can.
This commit is contained in:
lightningterror 2024-02-27 16:15:12 +01:00
parent 7a547e64c4
commit f2b3db9cbc
1 changed files with 21 additions and 0 deletions

View File

@ -5311,6 +5311,27 @@ __ri void GSRendererHW::DrawPrims(GSTextureCache::Target* rt, GSTextureCache::Ta
if (rta_decorrection)
{
if (m_texture_shuffle)
{
if (m_conf.ps.read_ba)
{
rt->RTADecorrect(rt);
m_conf.rt = rt->m_texture;
}
else if (m_conf.colormask.wa)
{
if (!(m_cached_ctx.FRAME.FBMSK & 0xFFFC0000))
{
rt->m_rt_alpha_scale = false;
}
else if (m_cached_ctx.FRAME.FBMSK & 0xFFFC0000)
{
rt->RTADecorrect(rt);
m_conf.rt = rt->m_texture;
}
}
}
if (rt->m_last_draw == s_n)
rt->m_rt_alpha_scale = false;
else