Disable OpenGL ES 3.1 on all Qualcomm Adreno devices.

Their new driver that supports GLES3.1 + AEP has issues with it.
At the very least they don't implement all of the geometry shader features fully which causes shader linker issues when we attempt to use them.
I don't have a device so I can't fully test, so until I do I'm going to blanket disable the whole thing.
This commit is contained in:
Ryan Houdek 2015-08-22 09:12:19 -05:00
parent a39c0910c4
commit b4e4a4cef4
3 changed files with 10 additions and 1 deletions

View File

@ -495,7 +495,7 @@ Renderer::Renderer()
if (GLInterface->GetMode() == GLInterfaceMode::MODE_OPENGLES3)
{
if (strstr(g_ogl_config.glsl_version, "3.0"))
if (strstr(g_ogl_config.glsl_version, "3.0") || DriverDetails::HasBug(DriverDetails::BUG_BROKENGLES31))
{
g_ogl_config.eSupportedGLSLVersion = GLSLES_300;
g_ogl_config.bSupportsAEP = false;

View File

@ -52,6 +52,7 @@ namespace DriverDetails
{OS_ALL, VENDOR_QUALCOMM, DRIVER_QUALCOMM, -1, BUG_BROKENATTRIBUTELESS, -1.0, 94.0, true},
{OS_ALL, VENDOR_QUALCOMM, DRIVER_QUALCOMM, -1, BUG_BROKENNEGATEDBOOLEAN,-1.0, -1.0, true},
{OS_ALL, VENDOR_QUALCOMM, DRIVER_QUALCOMM, -1, BUG_BROKENIVECSHIFTS, -1.0, 46.0, true},
{OS_ALL, VENDOR_QUALCOMM, DRIVER_QUALCOMM, -1, BUG_BROKENGLES31, -1.0, -1.0, true},
{OS_ALL, VENDOR_ARM, DRIVER_ARM, -1, BUG_BROKENBUFFERSTREAM, -1.0, -1.0, true},
{OS_ALL, VENDOR_IMGTEC, DRIVER_IMGTEC, -1, BUG_BROKENBUFFERSTREAM, -1.0, -1.0, true},
{OS_ALL, VENDOR_MESA, DRIVER_NOUVEAU, -1, BUG_BROKENUBO, 900, 916, true},

View File

@ -240,6 +240,14 @@ namespace DriverDetails
// Ended Version: 10.6.4
// Mesa meta misses to disable the scissor test.
BUG_BROKENCOPYIMAGE,
// Bug: Qualcomm has broken OpenGL ES 3.1 support
// Affected devices: Adreno
// Started Version: -1
// Ended Version: -1
// This isn't fully researched, but at the very least Qualcomm doesn't implement Geometry shader features fully.
// Until each bug is fully investigated, just disable GLES 3.1 entirely on these devices.
BUG_BROKENGLES31,
};
// Initializes our internal vendor, device family, and driver version