mirror of https://github.com/PCSX2/pcsx2.git
GS/HW: Fix RGB/A splitting on accumulation blend with DSB off
This commit is contained in:
parent
7aa05c08f1
commit
2815bd177c
|
@ -2579,7 +2579,8 @@ void GSRendererHW::EmulateBlending(bool& DATE_PRIMID, bool& DATE_BARRIER, bool&
|
|||
const bool blend_non_recursive = !!(blend_flag & BLEND_NO_REC);
|
||||
|
||||
// BLEND MIX selection, use a mix of hw/sw blending
|
||||
const bool blend_mix1 = !!(blend_flag & BLEND_MIX1);
|
||||
const bool blend_mix1 = !!(blend_flag & BLEND_MIX1) &&
|
||||
(features.dual_source_blend || !(m_conf.ps.blend_b == m_conf.ps.blend_d && (alpha_c0_high_min_one || alpha_c2_high_one)));
|
||||
const bool blend_mix2 = !!(blend_flag & BLEND_MIX2);
|
||||
const bool blend_mix3 = !!(blend_flag & BLEND_MIX3);
|
||||
bool blend_mix = (blend_mix1 || blend_mix2 || blend_mix3) && m_env.COLCLAMP.CLAMP;
|
||||
|
@ -2848,6 +2849,8 @@ void GSRendererHW::EmulateBlending(bool& DATE_PRIMID, bool& DATE_BARRIER, bool&
|
|||
{
|
||||
// Keep HW blending to do the addition/subtraction
|
||||
m_conf.blend = {true, GSDevice::CONST_ONE, GSDevice::CONST_ONE, blend.op, false, 0};
|
||||
blending_alpha_pass = false;
|
||||
|
||||
// Remove Cd from sw blend, it's handled in hw
|
||||
if (m_conf.ps.blend_a == 1)
|
||||
m_conf.ps.blend_a = 2;
|
||||
|
|
Loading…
Reference in New Issue