mirror of https://github.com/PCSX2/pcsx2.git
gsdx AMD: broken for broken
Until AMD release the driver with a fix, I can't use 2nd blending source with SSO. So let's use the first source. Blending/Alpha will be wrong. But it is likely better than an uninitialized alpha value.
This commit is contained in:
parent
f712c5c6d0
commit
5948c2d8cd
|
@ -1493,10 +1493,26 @@ void GSDeviceOGL::OMSetBlendState(uint8 blend_index, uint8 blend_factor, bool is
|
|||
if (GLState::f_sRGB != b.src || GLState::f_dRGB != b.dst) {
|
||||
GLState::f_sRGB = b.src;
|
||||
GLState::f_dRGB = b.dst;
|
||||
// AMD DRIVER SUCK
|
||||
uint16 src = b.src;
|
||||
uint16 dst = b.dst;
|
||||
if (GLLoader::fglrx_buggy_driver) {
|
||||
if (src == GL_SRC1_ALPHA)
|
||||
src = GL_SRC_ALPHA;
|
||||
else if (src == GL_ONE_MINUS_SRC1_ALPHA)
|
||||
src = GL_ONE_MINUS_SRC_ALPHA;
|
||||
|
||||
if (dst == GL_SRC1_ALPHA)
|
||||
dst = GL_SRC_ALPHA;
|
||||
else if (dst == GL_ONE_MINUS_SRC1_ALPHA)
|
||||
dst = GL_ONE_MINUS_SRC_ALPHA;
|
||||
}
|
||||
// AMD DRIVER SUCK
|
||||
|
||||
if (glBlendFuncSeparateiARB)
|
||||
glBlendFuncSeparateiARB(0, b.src, b.dst, GL_ONE, GL_ZERO);
|
||||
glBlendFuncSeparateiARB(0, src, dst, GL_ONE, GL_ZERO);
|
||||
else
|
||||
glBlendFuncSeparate(b.src, b.dst, GL_ONE, GL_ZERO);
|
||||
glBlendFuncSeparate(src, dst, GL_ONE, GL_ZERO);
|
||||
}
|
||||
|
||||
} else {
|
||||
|
|
Loading…
Reference in New Issue