summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorRyan Houdek <Sonicadvance1@gmail.com>2015-08-22 09:12:19 -0500
committerRyan Houdek <Sonicadvance1@gmail.com>2015-08-22 09:12:19 -0500
commitb4e4a4cef44365a93ba980c261bdf2f4b8769fef (patch)
tree87eb5211ef003f1d1319b8797ea3a10bc6abb05b /Source
parenta39c0910c410cd94a1b8d840cce6a633f5b5cfbb (diff)
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.
Diffstat (limited to 'Source')
-rw-r--r--Source/Core/VideoBackends/OGL/Render.cpp2
-rw-r--r--Source/Core/VideoCommon/DriverDetails.cpp1
-rw-r--r--Source/Core/VideoCommon/DriverDetails.h8
3 files changed, 10 insertions, 1 deletions
diff --git a/Source/Core/VideoBackends/OGL/Render.cpp b/Source/Core/VideoBackends/OGL/Render.cpp
index a81eb675b6..e0d48b52e2 100644
--- a/Source/Core/VideoBackends/OGL/Render.cpp
+++ b/Source/Core/VideoBackends/OGL/Render.cpp
@@ -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;
diff --git a/Source/Core/VideoCommon/DriverDetails.cpp b/Source/Core/VideoCommon/DriverDetails.cpp
index ebd0373d40..219a61dc72 100644
--- a/Source/Core/VideoCommon/DriverDetails.cpp
+++ b/Source/Core/VideoCommon/DriverDetails.cpp
@@ -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},
diff --git a/Source/Core/VideoCommon/DriverDetails.h b/Source/Core/VideoCommon/DriverDetails.h
index 2dec67d8cb..01241bdfd2 100644
--- a/Source/Core/VideoCommon/DriverDetails.h
+++ b/Source/Core/VideoCommon/DriverDetails.h
@@ -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