diff options
| author | Ryan Houdek <Sonicadvance1@gmail.com> | 2014-12-19 15:55:50 -0600 |
|---|---|---|
| committer | Ryan Houdek <Sonicadvance1@gmail.com> | 2014-12-19 15:55:50 -0600 |
| commit | b30802e2f013726842f69c6e4ea28af13ff31974 (patch) | |
| tree | af73c64f07ae66f250c5ae58aff4a212ca72a750 /Source/Core | |
| parent | 2a95454c01e771e6b2c43da746cdc90eda139b89 (diff) | |
| parent | 8c0e26d96987194bc04d77071a897a507d8bcaa4 (diff) | |
Merge pull request #1721 from Sonicadvance1/fix_adreno_400
Fixes Adreno 400 performance.
Diffstat (limited to 'Source/Core')
| -rw-r--r-- | Source/Core/VideoBackends/OGL/Render.cpp | 41 | ||||
| -rw-r--r-- | Source/Core/VideoCommon/DriverDetails.cpp | 20 | ||||
| -rw-r--r-- | Source/Core/VideoCommon/DriverDetails.h | 10 |
3 files changed, 29 insertions, 42 deletions
diff --git a/Source/Core/VideoBackends/OGL/Render.cpp b/Source/Core/VideoBackends/OGL/Render.cpp index cc52c47e03..9baeb286a6 100644 --- a/Source/Core/VideoBackends/OGL/Render.cpp +++ b/Source/Core/VideoBackends/OGL/Render.cpp @@ -266,10 +266,7 @@ static void InitDriverInfo() { case DriverDetails::VENDOR_QUALCOMM: { - if (std::string::npos != srenderer.find("Adreno (TM) 3")) - driver = DriverDetails::DRIVER_QUALCOMM_3XX; - else - driver = DriverDetails::DRIVER_QUALCOMM_2XX; + driver = DriverDetails::DRIVER_QUALCOMM; double glVersion; sscanf(g_ogl_config.gl_version, "OpenGL ES %lg V@%lg", &glVersion, &version); } @@ -278,28 +275,20 @@ static void InitDriverInfo() // Currently the Mali-T line has two families in it. // Mali-T6xx and Mali-T7xx // These two families are similar enough that they share bugs in their drivers. - if (std::string::npos != srenderer.find("Mali-T")) - { - driver = DriverDetails::DRIVER_ARM_MIDGARD; - // Mali drivers provide no way to explicitly find out what video driver is running. - // This is similar to how we can't find the Nvidia driver version in Windows. - // Good thing is that ARM introduces a new video driver about once every two years so we can - // find the driver version by the features it exposes. - // r2p0 - No OpenGL ES 3.0 support (We don't support this) - // r3p0 - OpenGL ES 3.0 support - // r4p0 - Supports 'GL_EXT_shader_pixel_local_storage' extension. - - if (GLExtensions::Supports("GL_EXT_shader_pixel_local_storage")) - version = 400; - else - version = 300; - } - else if (std::string::npos != srenderer.find("Mali-4") || - std::string::npos != srenderer.find("Mali-3") || - std::string::npos != srenderer.find("Mali-2")) - { - driver = DriverDetails::DRIVER_ARM_UTGARD; - } + // + // Mali drivers provide no way to explicitly find out what video driver is running. + // This is similar to how we can't find the Nvidia driver version in Windows. + // Good thing is that ARM introduces a new video driver about once every two years so we can + // find the driver version by the features it exposes. + // r2p0 - No OpenGL ES 3.0 support (We don't support this) + // r3p0 - OpenGL ES 3.0 support + // r4p0 - Supports 'GL_EXT_shader_pixel_local_storage' extension. + + driver = DriverDetails::DRIVER_ARM; + if (GLExtensions::Supports("GL_EXT_shader_pixel_local_storage")) + version = 400; + else + version = 300; break; case DriverDetails::VENDOR_MESA: { diff --git a/Source/Core/VideoCommon/DriverDetails.cpp b/Source/Core/VideoCommon/DriverDetails.cpp index ccde499071..dbcd45133f 100644 --- a/Source/Core/VideoCommon/DriverDetails.cpp +++ b/Source/Core/VideoCommon/DriverDetails.cpp @@ -40,16 +40,16 @@ namespace DriverDetails // This is a list of all known bugs for each vendor // We use this to check if the device and driver has a issue static BugInfo m_known_bugs[] = { - {OS_ALL, VENDOR_QUALCOMM, DRIVER_QUALCOMM_3XX, -1, BUG_NODYNUBOACCESS, 14.0, 94.0, true}, - {OS_ALL, VENDOR_QUALCOMM, DRIVER_QUALCOMM_3XX, -1, BUG_BROKENCENTROID, 14.0, 46.0, true}, - {OS_ALL, VENDOR_QUALCOMM, DRIVER_QUALCOMM_3XX, -1, BUG_BROKENINFOLOG, -1.0, 46.0, true}, - {OS_ALL, VENDOR_QUALCOMM, DRIVER_QUALCOMM_3XX, -1, BUG_ANNIHILATEDUBOS, 41.0, 46.0, true}, - {OS_ALL, VENDOR_QUALCOMM, DRIVER_QUALCOMM_3XX, -1, BUG_BROKENSWAP, -1.0, 46.0, true}, - {OS_ALL, VENDOR_QUALCOMM, DRIVER_QUALCOMM_3XX, -1, BUG_BROKENBUFFERSTREAM, -1.0, -1.0, true}, - {OS_ALL, VENDOR_QUALCOMM, DRIVER_QUALCOMM_3XX, -1, BUG_BROKENTEXTURESIZE, -1.0, 65.0, true}, - {OS_ALL, VENDOR_QUALCOMM, DRIVER_QUALCOMM_3XX, -1, BUG_BROKENATTRIBUTELESS, -1.0, 94.0, true}, - {OS_ALL, VENDOR_QUALCOMM, DRIVER_QUALCOMM_3XX, -1, BUG_BROKENNEGATEDBOOLEAN,-1.0, -1.0, true}, - {OS_ALL, VENDOR_ARM, DRIVER_ARM_MIDGARD, -1, BUG_BROKENBUFFERSTREAM, -1.0, -1.0, true}, + {OS_ALL, VENDOR_QUALCOMM, DRIVER_QUALCOMM, -1, BUG_NODYNUBOACCESS, 14.0, 94.0, true}, + {OS_ALL, VENDOR_QUALCOMM, DRIVER_QUALCOMM, -1, BUG_BROKENCENTROID, 14.0, 46.0, true}, + {OS_ALL, VENDOR_QUALCOMM, DRIVER_QUALCOMM, -1, BUG_BROKENINFOLOG, -1.0, 46.0, true}, + {OS_ALL, VENDOR_QUALCOMM, DRIVER_QUALCOMM, -1, BUG_ANNIHILATEDUBOS, 41.0, 46.0, true}, + {OS_ALL, VENDOR_QUALCOMM, DRIVER_QUALCOMM, -1, BUG_BROKENSWAP, -1.0, 46.0, true}, + {OS_ALL, VENDOR_QUALCOMM, DRIVER_QUALCOMM, -1, BUG_BROKENBUFFERSTREAM, -1.0, -1.0, true}, + {OS_ALL, VENDOR_QUALCOMM, DRIVER_QUALCOMM, -1, BUG_BROKENTEXTURESIZE, -1.0, 65.0, true}, + {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_ARM, DRIVER_ARM, -1, BUG_BROKENBUFFERSTREAM, -1.0, -1.0, true}, {OS_ALL, VENDOR_MESA, DRIVER_NOUVEAU, -1, BUG_BROKENUBO, 900, 916, true}, {OS_ALL, VENDOR_MESA, DRIVER_R600, -1, BUG_BROKENUBO, 900, 913, true}, {OS_ALL, VENDOR_MESA, DRIVER_I965, -1, BUG_BROKENUBO, 900, 920, true}, diff --git a/Source/Core/VideoCommon/DriverDetails.h b/Source/Core/VideoCommon/DriverDetails.h index 49371d3a03..278e339fac 100644 --- a/Source/Core/VideoCommon/DriverDetails.h +++ b/Source/Core/VideoCommon/DriverDetails.h @@ -42,14 +42,12 @@ namespace DriverDetails DRIVER_R600, // OSS Radeon DRIVER_INTEL, // Official Intel DRIVER_I965, // OSS Intel - DRIVER_ARM_MIDGARD, // Official Mali driver - DRIVER_ARM_UTGARD, // Official Mali driver + DRIVER_ARM, // Official Mali driver DRIVER_LIMA, // OSS Mali driver - DRIVER_QUALCOMM_3XX, // Official Adreno driver 3xx - DRIVER_QUALCOMM_2XX, // Official Adreno driver 2xx + DRIVER_QUALCOMM, // Official Adreno driver DRIVER_FREEDRENO, // OSS Adreno driver - DRIVER_IMGTEC, // OSS PowerVR driver - DRIVER_VIVANTE, // Official vivante driver + DRIVER_IMGTEC, // Official PowerVR driver + DRIVER_VIVANTE, // Official Vivante driver DRIVER_UNKNOWN // Unknown driver, default to official hardware driver }; |
