mirror of https://github.com/PCSX2/pcsx2.git
gsdx-ogl: fix blending regression (VP2)
Negative factor must be disabled in negative accumulation "-Cs*As + Cd" Shader must output Cs*As and blending unit will do the Cd - C subtraction
This commit is contained in:
parent
9e97742a95
commit
37661f3a86
|
@ -397,6 +397,13 @@ bool GSRendererOGL::EmulateBlending(GSDeviceOGL::PSSelector& ps_sel, bool DATE_G
|
||||||
if (accumulation_blend) {
|
if (accumulation_blend) {
|
||||||
// Keep HW blending to do the addition/subtraction
|
// Keep HW blending to do the addition/subtraction
|
||||||
dev->OMSetBlendState(blend_index);
|
dev->OMSetBlendState(blend_index);
|
||||||
|
if (ALPHA.A == 2) {
|
||||||
|
// The blend unit does a reverse subtraction so it means
|
||||||
|
// the shader must output a positive value.
|
||||||
|
// Replace 0 - Cs by Cs - 0
|
||||||
|
ps_sel.blend_a = ALPHA.B;
|
||||||
|
ps_sel.blend_b = 2;
|
||||||
|
}
|
||||||
// Remove the addition/substraction from the SW blending
|
// Remove the addition/substraction from the SW blending
|
||||||
ps_sel.blend_d = 2;
|
ps_sel.blend_d = 2;
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in New Issue