OGL: Disable geometry shaders on Intel's Windows drivers due to broken interface blocks.
This commit is contained in:
parent
b30802e2f0
commit
bc3ed44050
|
@ -465,7 +465,8 @@ Renderer::Renderer()
|
||||||
g_Config.backend_info.bSupportsEarlyZ = GLExtensions::Supports("GL_ARB_shader_image_load_store");
|
g_Config.backend_info.bSupportsEarlyZ = GLExtensions::Supports("GL_ARB_shader_image_load_store");
|
||||||
g_Config.backend_info.bSupportsBBox = GLExtensions::Supports("GL_ARB_shader_storage_buffer_object");
|
g_Config.backend_info.bSupportsBBox = GLExtensions::Supports("GL_ARB_shader_storage_buffer_object");
|
||||||
g_Config.backend_info.bSupportsGSInstancing = GLExtensions::Supports("GL_ARB_gpu_shader5");
|
g_Config.backend_info.bSupportsGSInstancing = GLExtensions::Supports("GL_ARB_gpu_shader5");
|
||||||
g_Config.backend_info.bSupportsGeometryShaders = (GLExtensions::Version() >= 320);
|
g_Config.backend_info.bSupportsGeometryShaders = (GLExtensions::Version() >= 320) &&
|
||||||
|
!DriverDetails::HasBug(DriverDetails::BUG_INTELBROKENINTERFACEBLOCKS);
|
||||||
|
|
||||||
// Desktop OpenGL supports the binding layout if it supports 420pack
|
// Desktop OpenGL supports the binding layout if it supports 420pack
|
||||||
// OpenGL ES 3.1 supports it implicitly without an extension
|
// OpenGL ES 3.1 supports it implicitly without an extension
|
||||||
|
|
|
@ -59,6 +59,7 @@ namespace DriverDetails
|
||||||
{OS_WINDOWS,VENDOR_NVIDIA, DRIVER_NVIDIA, -1, BUG_BROKENUNSYNCMAPPING, -1.0, -1.0, true},
|
{OS_WINDOWS,VENDOR_NVIDIA, DRIVER_NVIDIA, -1, BUG_BROKENUNSYNCMAPPING, -1.0, -1.0, true},
|
||||||
{OS_LINUX, VENDOR_NVIDIA, DRIVER_NVIDIA, -1, BUG_BROKENUNSYNCMAPPING, -1.0, -1.0, true},
|
{OS_LINUX, VENDOR_NVIDIA, DRIVER_NVIDIA, -1, BUG_BROKENUNSYNCMAPPING, -1.0, -1.0, true},
|
||||||
{OS_WINDOWS,VENDOR_INTEL, DRIVER_INTEL, -1, BUG_INTELBROKENBUFFERSTORAGE, 101810.3907, 101810.3960, true},
|
{OS_WINDOWS,VENDOR_INTEL, DRIVER_INTEL, -1, BUG_INTELBROKENBUFFERSTORAGE, 101810.3907, 101810.3960, true},
|
||||||
|
{OS_WINDOWS,VENDOR_INTEL, DRIVER_INTEL, -1, BUG_INTELBROKENINTERFACEBLOCKS, -1.0, -1.0, true},
|
||||||
};
|
};
|
||||||
|
|
||||||
static std::map<Bug, BugInfo> m_bugs;
|
static std::map<Bug, BugInfo> m_bugs;
|
||||||
|
|
|
@ -200,6 +200,15 @@ namespace DriverDetails
|
||||||
// Broken on Windows Intel
|
// Broken on Windows Intel
|
||||||
// if (cond == false)
|
// if (cond == false)
|
||||||
BUG_BROKENNEGATEDBOOLEAN,
|
BUG_BROKENNEGATEDBOOLEAN,
|
||||||
|
// Bug: Intel's Windows driver breaks interface blocks that contain structs.
|
||||||
|
// Affected devices: Intel (Windows)
|
||||||
|
// Started Version: -1
|
||||||
|
// Ended Version: -1
|
||||||
|
// We need interface blocks to make the geometry shader optional and we need structs to make
|
||||||
|
// assignment easier in the geometry shader stage. However Intel's Windows drivers don't seem
|
||||||
|
// to be able handle this combination.
|
||||||
|
// TODO: Find affected versions.
|
||||||
|
BUG_INTELBROKENINTERFACEBLOCKS,
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue