DriverDetails: Disable dual-source blending on AMD OGL drivers.
This commit is contained in:
parent
838b234317
commit
afe707bc18
|
@ -444,8 +444,9 @@ Renderer::Renderer()
|
||||||
g_Config.backend_info.AdapterName = g_ogl_config.gl_renderer;
|
g_Config.backend_info.AdapterName = g_ogl_config.gl_renderer;
|
||||||
|
|
||||||
g_Config.backend_info.bSupportsDualSourceBlend =
|
g_Config.backend_info.bSupportsDualSourceBlend =
|
||||||
GLExtensions::Supports("GL_ARB_blend_func_extended") ||
|
(GLExtensions::Supports("GL_ARB_blend_func_extended") ||
|
||||||
GLExtensions::Supports("GL_EXT_blend_func_extended");
|
GLExtensions::Supports("GL_EXT_blend_func_extended")) &&
|
||||||
|
!DriverDetails::HasBug(DriverDetails::BUG_BROKEN_DUAL_SOURCE_BLENDING);
|
||||||
g_Config.backend_info.bSupportsPrimitiveRestart =
|
g_Config.backend_info.bSupportsPrimitiveRestart =
|
||||||
!DriverDetails::HasBug(DriverDetails::BUG_PRIMITIVERESTART) &&
|
!DriverDetails::HasBug(DriverDetails::BUG_PRIMITIVERESTART) &&
|
||||||
((GLExtensions::Version() >= 310) || GLExtensions::Supports("GL_NV_primitive_restart"));
|
((GLExtensions::Version() >= 310) || GLExtensions::Supports("GL_NV_primitive_restart"));
|
||||||
|
|
|
@ -86,6 +86,8 @@ static BugInfo m_known_bugs[] = {
|
||||||
-1.0, true},
|
-1.0, true},
|
||||||
{API_VULKAN, OS_ALL, VENDOR_ATI, DRIVER_ATI, Family::UNKNOWN,
|
{API_VULKAN, OS_ALL, VENDOR_ATI, DRIVER_ATI, Family::UNKNOWN,
|
||||||
BUG_BROKEN_FRAGMENT_SHADER_INDEX_DECORATION, -1.0, -1.0, true},
|
BUG_BROKEN_FRAGMENT_SHADER_INDEX_DECORATION, -1.0, -1.0, true},
|
||||||
|
{API_OPENGL, OS_WINDOWS, VENDOR_ATI, DRIVER_ATI, Family::UNKNOWN,
|
||||||
|
BUG_BROKEN_DUAL_SOURCE_BLENDING, -1.0, -1.0, true},
|
||||||
};
|
};
|
||||||
|
|
||||||
static std::map<Bug, BugInfo> m_bugs;
|
static std::map<Bug, BugInfo> m_bugs;
|
||||||
|
|
|
@ -230,6 +230,14 @@ enum Bug
|
||||||
// the driver to fail to create graphics pipelines. The workaround for this is to specify the
|
// the driver to fail to create graphics pipelines. The workaround for this is to specify the
|
||||||
// index as a MRT location instead, or omit the binding completely.
|
// index as a MRT location instead, or omit the binding completely.
|
||||||
BUG_BROKEN_FRAGMENT_SHADER_INDEX_DECORATION,
|
BUG_BROKEN_FRAGMENT_SHADER_INDEX_DECORATION,
|
||||||
|
|
||||||
|
// Bug: Dual-source outputs from fragment shaders are broken on AMD OpenGL drivers
|
||||||
|
// Started Version: -1
|
||||||
|
// Ended Version: -1
|
||||||
|
// Fragment shaders that specify dual-source outputs, cause the driver to crash
|
||||||
|
// sometimes this happens in the kernel mode part of the driver resulting in a BSOD.
|
||||||
|
// Disable dual-source blending support for now.
|
||||||
|
BUG_BROKEN_DUAL_SOURCE_BLENDING,
|
||||||
};
|
};
|
||||||
|
|
||||||
// Initializes our internal vendor, device family, and driver version
|
// Initializes our internal vendor, device family, and driver version
|
||||||
|
|
Loading…
Reference in New Issue