From 13e0546f56b0b2090b4bf3476e0f78acc0646515 Mon Sep 17 00:00:00 2001 From: lightningterror <18107717+lightningterror@users.noreply.github.com> Date: Sun, 22 Sep 2024 13:55:29 +0200 Subject: [PATCH] GS/HW: Make sure it's not a channel shuffle when the alpha of a target is used as source. The alpha of a target used a source is meaningless to us, since it's not really an indexed texture. --- pcsx2/GS/Renderers/HW/GSRendererHW.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pcsx2/GS/Renderers/HW/GSRendererHW.cpp b/pcsx2/GS/Renderers/HW/GSRendererHW.cpp index 466d42facfe69..7fbe8ab0db25c 100644 --- a/pcsx2/GS/Renderers/HW/GSRendererHW.cpp +++ b/pcsx2/GS/Renderers/HW/GSRendererHW.cpp @@ -2576,7 +2576,9 @@ void GSRendererHW::Draw() // We don't know the alpha range of direct sources when we first tried to optimize the alpha test. // Moving the texture lookup before the ATST optimization complicates things a lot, so instead, // recompute it, and everything derived from it again if it changes. - if (src->m_valid_alpha_minmax) + // No channel shuffle as the alpha of a target used a source is meaningless to us, + // since it's not really an indexed texture. + if (!IsPossibleChannelShuffle() && src->m_valid_alpha_minmax) { CalcAlphaMinMax(src->m_alpha_minmax.first, src->m_alpha_minmax.second);