Merge pull request #1721 from Sonicadvance1/fix_adreno_400

Fixes Adreno 400 performance.
This commit is contained in:
Ryan Houdek 2014-12-19 15:55:50 -06:00
commit b30802e2f0
3 changed files with 28 additions and 41 deletions

View File

@ -266,10 +266,7 @@ static void InitDriverInfo()
{ {
case DriverDetails::VENDOR_QUALCOMM: case DriverDetails::VENDOR_QUALCOMM:
{ {
if (std::string::npos != srenderer.find("Adreno (TM) 3")) driver = DriverDetails::DRIVER_QUALCOMM;
driver = DriverDetails::DRIVER_QUALCOMM_3XX;
else
driver = DriverDetails::DRIVER_QUALCOMM_2XX;
double glVersion; double glVersion;
sscanf(g_ogl_config.gl_version, "OpenGL ES %lg V@%lg", &glVersion, &version); 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. // Currently the Mali-T line has two families in it.
// Mali-T6xx and Mali-T7xx // Mali-T6xx and Mali-T7xx
// These two families are similar enough that they share bugs in their drivers. // These two families are similar enough that they share bugs in their drivers.
if (std::string::npos != srenderer.find("Mali-T")) //
{ // Mali drivers provide no way to explicitly find out what video driver is running.
driver = DriverDetails::DRIVER_ARM_MIDGARD; // This is similar to how we can't find the Nvidia driver version in Windows.
// Mali drivers provide no way to explicitly find out what video driver is running. // Good thing is that ARM introduces a new video driver about once every two years so we can
// This is similar to how we can't find the Nvidia driver version in Windows. // find the driver version by the features it exposes.
// Good thing is that ARM introduces a new video driver about once every two years so we can // r2p0 - No OpenGL ES 3.0 support (We don't support this)
// find the driver version by the features it exposes. // r3p0 - OpenGL ES 3.0 support
// r2p0 - No OpenGL ES 3.0 support (We don't support this) // r4p0 - Supports 'GL_EXT_shader_pixel_local_storage' extension.
// r3p0 - OpenGL ES 3.0 support
// r4p0 - Supports 'GL_EXT_shader_pixel_local_storage' extension.
if (GLExtensions::Supports("GL_EXT_shader_pixel_local_storage")) driver = DriverDetails::DRIVER_ARM;
version = 400; if (GLExtensions::Supports("GL_EXT_shader_pixel_local_storage"))
else version = 400;
version = 300; 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;
}
break; break;
case DriverDetails::VENDOR_MESA: case DriverDetails::VENDOR_MESA:
{ {

View File

@ -40,16 +40,16 @@ namespace DriverDetails
// This is a list of all known bugs for each vendor // This is a list of all known bugs for each vendor
// We use this to check if the device and driver has a issue // We use this to check if the device and driver has a issue
static BugInfo m_known_bugs[] = { 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, -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, -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, -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, -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, -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, -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, -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, -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_QUALCOMM, DRIVER_QUALCOMM, -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_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_NOUVEAU, -1, BUG_BROKENUBO, 900, 916, true},
{OS_ALL, VENDOR_MESA, DRIVER_R600, -1, BUG_BROKENUBO, 900, 913, 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}, {OS_ALL, VENDOR_MESA, DRIVER_I965, -1, BUG_BROKENUBO, 900, 920, true},

View File

@ -42,14 +42,12 @@ namespace DriverDetails
DRIVER_R600, // OSS Radeon DRIVER_R600, // OSS Radeon
DRIVER_INTEL, // Official Intel DRIVER_INTEL, // Official Intel
DRIVER_I965, // OSS Intel DRIVER_I965, // OSS Intel
DRIVER_ARM_MIDGARD, // Official Mali driver DRIVER_ARM, // Official Mali driver
DRIVER_ARM_UTGARD, // Official Mali driver
DRIVER_LIMA, // OSS Mali driver DRIVER_LIMA, // OSS Mali driver
DRIVER_QUALCOMM_3XX, // Official Adreno driver 3xx DRIVER_QUALCOMM, // Official Adreno driver
DRIVER_QUALCOMM_2XX, // Official Adreno driver 2xx
DRIVER_FREEDRENO, // OSS Adreno driver DRIVER_FREEDRENO, // OSS Adreno driver
DRIVER_IMGTEC, // OSS PowerVR driver DRIVER_IMGTEC, // Official PowerVR driver
DRIVER_VIVANTE, // Official vivante driver DRIVER_VIVANTE, // Official Vivante driver
DRIVER_UNKNOWN // Unknown driver, default to official hardware driver DRIVER_UNKNOWN // Unknown driver, default to official hardware driver
}; };