From 208d3ffa7b77f9aed64bafb7ad336ac649eb99cf Mon Sep 17 00:00:00 2001 From: lightningterror <18107717+lightningterror@users.noreply.github.com> Date: Sun, 26 Dec 2021 19:12:28 +0100 Subject: [PATCH] GS-hw: Fix pabe regression from renderers merge. Only OpenGL should disable accumulation and blend mix to allow reading the framebuffer next. Also pabe will only be accurate with non recursive blend on d3d11 only so enable it for it only. --- pcsx2/GS/Renderers/HW/GSRendererNew.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/pcsx2/GS/Renderers/HW/GSRendererNew.cpp b/pcsx2/GS/Renderers/HW/GSRendererNew.cpp index 28e11b6724..f77b886e6c 100644 --- a/pcsx2/GS/Renderers/HW/GSRendererNew.cpp +++ b/pcsx2/GS/Renderers/HW/GSRendererNew.cpp @@ -643,9 +643,17 @@ void GSRendererNew::EmulateBlending(bool& DATE_GL42, bool& DATE_GL45) if (sw_blending) { GL_INS("PABE mode ENABLED"); - m_conf.ps.pabe = 1; - accumulation_blend = false; - blend_mix = false; + if (m_dev->Features().texture_barrier) + { + // Disable hw/sw blend and do pure sw blend with reading the framebuffer. + accumulation_blend = false; + blend_mix = false; + m_conf.ps.pabe = 1; + } + else + { + m_conf.ps.pabe = blend_non_recursive; + } } else if (ALPHA.A == 0 && ALPHA.B == 1 && ALPHA.C == 0 && ALPHA.D == 1) {