diff --git a/plugins/GSdx/GLLoader.cpp b/plugins/GSdx/GLLoader.cpp index 159e989772..cfdd7ae382 100644 --- a/plugins/GSdx/GLLoader.cpp +++ b/plugins/GSdx/GLLoader.cpp @@ -247,6 +247,8 @@ namespace GLLoader { // Name changed but driver is still bad! if (strstr(vendor, "ATI") || strstr(vendor, "Advanced Micro Devices")) fglrx_buggy_driver = true; + if (fglrx_buggy_driver && strstr((const char*)&s[v], "15.301.1801.1001")) // Latest legacy driver + legacy_fglrx_buggy_driver = true; if (strstr(vendor, "NVIDIA Corporation")) nvidia_buggy_driver = true; if (strstr(vendor, "Intel")) diff --git a/plugins/GSdx/GLLoader.h b/plugins/GSdx/GLLoader.h index dde71426e2..8df75833c5 100644 --- a/plugins/GSdx/GLLoader.h +++ b/plugins/GSdx/GLLoader.h @@ -334,6 +334,7 @@ namespace GLLoader { bool check_gl_supported_extension(); extern bool fglrx_buggy_driver; + extern bool legacy_fglrx_buggy_driver; extern bool mesa_amd_buggy_driver; extern bool nvidia_buggy_driver; extern bool intel_buggy_driver; diff --git a/plugins/GSdx/GSDeviceOGL.cpp b/plugins/GSdx/GSDeviceOGL.cpp index 60cf148be9..19dcba9b4b 100644 --- a/plugins/GSdx/GSDeviceOGL.cpp +++ b/plugins/GSdx/GSDeviceOGL.cpp @@ -1491,7 +1491,7 @@ void GSDeviceOGL::OMSetBlendState(uint8 blend_index, uint8 blend_factor, bool is // AMD DRIVER SUCK uint16 src = b.src; uint16 dst = b.dst; - if (GLLoader::fglrx_buggy_driver) { + if (GLLoader::legacy_fglrx_buggy_driver) { if (src == GL_SRC1_ALPHA) src = GL_SRC_ALPHA; else if (src == GL_ONE_MINUS_SRC1_ALPHA)