From d041df82547f36197a6d0a8168fb18c063fa77c0 Mon Sep 17 00:00:00 2001 From: lightningterror <18107717+lightningterror@users.noreply.github.com> Date: Sat, 8 Jan 2022 05:20:21 +0100 Subject: [PATCH] GS-hw: Don't enable blending when only alpha is written. Optimization. --- pcsx2/GS/Renderers/HW/GSRendererNew.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pcsx2/GS/Renderers/HW/GSRendererNew.cpp b/pcsx2/GS/Renderers/HW/GSRendererNew.cpp index c08327aa1d..537d2e492f 100644 --- a/pcsx2/GS/Renderers/HW/GSRendererNew.cpp +++ b/pcsx2/GS/Renderers/HW/GSRendererNew.cpp @@ -517,9 +517,11 @@ void GSRendererNew::EmulateBlending(bool& DATE_PRIMID, bool& DATE_BARRIER) const bool AA1 = PRIM->AA1 && (m_vt.m_primclass == GS_LINE_CLASS); // PABE: Check condition early as an optimization. const bool PABE = PRIM->ABE && m_env.PABE.PABE && (GetAlphaMinMax().max < 128); + // FBMASK: Only alpha is written, no need to do blending. + const bool FBMASK = m_context->FRAME.FBMSK == 0x00FFFFFF; // No blending or coverage anti-aliasing so early exit - if (PABE || !(PRIM->ABE || AA1)) + if (FBMASK || PABE || !(PRIM->ABE || AA1)) { m_conf.blend = {}; return;