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);
|
const bool blend_non_recursive = !!(blend_flag & BLEND_NO_REC);
|
||||||
|
|
||||||
// BLEND MIX selection, use a mix of hw/sw blending
|
// 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_mix2 = !!(blend_flag & BLEND_MIX2);
|
||||||
const bool blend_mix3 = !!(blend_flag & BLEND_MIX3);
|
const bool blend_mix3 = !!(blend_flag & BLEND_MIX3);
|
||||||
bool blend_mix = (blend_mix1 || blend_mix2 || blend_mix3) && m_env.COLCLAMP.CLAMP;
|
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
|
// Keep HW blending to do the addition/subtraction
|
||||||
m_conf.blend = {true, GSDevice::CONST_ONE, GSDevice::CONST_ONE, blend.op, false, 0};
|
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
|
// Remove Cd from sw blend, it's handled in hw
|
||||||
if (m_conf.ps.blend_a == 1)
|
if (m_conf.ps.blend_a == 1)
|
||||||
m_conf.ps.blend_a = 2;
|
m_conf.ps.blend_a = 2;
|
||||||
|
|
Loading…
Reference in New Issue