Support OS specific bugs in our DriverDetails.
This commit is contained in:
parent
2cbefa2905
commit
faf8792351
|
@ -11,8 +11,9 @@ namespace DriverDetails
|
|||
{
|
||||
struct BugInfo
|
||||
{
|
||||
Vendor m_vendor; // which vendor has the error
|
||||
Driver m_driver; // which driver has the error
|
||||
u32 m_os; // Which OS has the issue
|
||||
Vendor m_vendor; // Which vendor has the error
|
||||
Driver m_driver; // Which driver has the error
|
||||
Bug m_bug; // Which bug it is
|
||||
double m_versionstart; // When it started
|
||||
double m_versionend; // When it ended
|
||||
|
@ -20,6 +21,16 @@ namespace DriverDetails
|
|||
};
|
||||
|
||||
// Local members
|
||||
#ifdef _WIN32
|
||||
const u32 m_os = OS_ALL | OS_WINDOWS;
|
||||
#elif ANDROID
|
||||
const u32 m_os = OS_ALL | OS_ANDROID;
|
||||
#elif __APPLE__
|
||||
const u32 m_os = OS_ALL | OS_OSX;
|
||||
#elif __linux__
|
||||
const u32 m_os = OS_ALL | OS_LINUX;
|
||||
#endif
|
||||
|
||||
Vendor m_vendor = VENDOR_UNKNOWN;
|
||||
Driver m_driver = DRIVER_UNKNOWN;
|
||||
double m_version = 0.0;
|
||||
|
@ -27,18 +38,18 @@ 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
|
||||
BugInfo m_known_bugs[] = {
|
||||
{VENDOR_QUALCOMM, DRIVER_QUALCOMM_3XX, BUG_NODYNUBOACCESS, 14.0, 46.0, true},
|
||||
{VENDOR_QUALCOMM, DRIVER_QUALCOMM_3XX, BUG_BROKENCENTROID, 14.0, -1.0, true},
|
||||
{VENDOR_QUALCOMM, DRIVER_QUALCOMM_3XX, BUG_BROKENINFOLOG, -1.0, -1.0, true},
|
||||
{VENDOR_QUALCOMM, DRIVER_QUALCOMM_3XX, BUG_ANNIHILATEDUBOS, 41.0, 46.0, true},
|
||||
{VENDOR_QUALCOMM, DRIVER_QUALCOMM_3XX, BUG_BROKENSWAP, -1.0, -1.0, true},
|
||||
{VENDOR_QUALCOMM, DRIVER_QUALCOMM_3XX, BUG_BROKENBUFFERSTREAM, -1.0, -1.0, true},
|
||||
{VENDOR_ARM, DRIVER_ARM_T6XX, BUG_BROKENBUFFERSTREAM, -1.0, -1.0, true},
|
||||
{VENDOR_MESA, DRIVER_NOUVEAU, BUG_BROKENUBO, 900, 916, true},
|
||||
{VENDOR_MESA, DRIVER_R600, BUG_BROKENUBO, 900, 913, true},
|
||||
{VENDOR_MESA, DRIVER_I965, BUG_BROKENUBO, 900, 920, true},
|
||||
{VENDOR_ATI, DRIVER_ATI, BUG_BROKENHACKEDBUFFER, -1.0, -1.0, true},
|
||||
{VENDOR_MESA, DRIVER_NOUVEAU, BUG_BROKENHACKEDBUFFER, -1.0, -1.0, true},
|
||||
{OS_ALL, VENDOR_QUALCOMM, DRIVER_QUALCOMM_3XX, BUG_NODYNUBOACCESS, 14.0, 46.0, true},
|
||||
{OS_ALL, VENDOR_QUALCOMM, DRIVER_QUALCOMM_3XX, BUG_BROKENCENTROID, 14.0, -1.0, true},
|
||||
{OS_ALL, VENDOR_QUALCOMM, DRIVER_QUALCOMM_3XX, BUG_BROKENINFOLOG, -1.0, -1.0, true},
|
||||
{OS_ALL, VENDOR_QUALCOMM, DRIVER_QUALCOMM_3XX, BUG_ANNIHILATEDUBOS, 41.0, 46.0, true},
|
||||
{OS_ALL, VENDOR_QUALCOMM, DRIVER_QUALCOMM_3XX, BUG_BROKENSWAP, -1.0, -1.0, true},
|
||||
{OS_ALL, VENDOR_QUALCOMM, DRIVER_QUALCOMM_3XX, BUG_BROKENBUFFERSTREAM, -1.0, -1.0, true},
|
||||
{OS_ALL, VENDOR_ARM, DRIVER_ARM_T6XX, BUG_BROKENBUFFERSTREAM, -1.0, -1.0, true},
|
||||
{OS_ALL, VENDOR_MESA, DRIVER_NOUVEAU, BUG_BROKENUBO, 900, 916, true},
|
||||
{OS_ALL, VENDOR_MESA, DRIVER_R600, BUG_BROKENUBO, 900, 913, true},
|
||||
{OS_ALL, VENDOR_MESA, DRIVER_I965, BUG_BROKENUBO, 900, 920, true},
|
||||
{OS_ALL, VENDOR_ATI, DRIVER_ATI, BUG_BROKENHACKEDBUFFER, -1.0, -1.0, true},
|
||||
{OS_ALL, VENDOR_MESA, DRIVER_NOUVEAU, BUG_BROKENHACKEDBUFFER, -1.0, -1.0, true},
|
||||
};
|
||||
|
||||
std::map<Bug, BugInfo> m_bugs;
|
||||
|
@ -75,6 +86,7 @@ namespace DriverDetails
|
|||
for(auto& bug : m_known_bugs)
|
||||
{
|
||||
if(
|
||||
( bug.m_vendor & m_vendor ) &&
|
||||
( bug.m_vendor == m_vendor || bug.m_vendor == VENDOR_ALL ) &&
|
||||
( bug.m_driver == m_driver || bug.m_driver == DRIVER_ALL ) &&
|
||||
( bug.m_versionstart <= m_version || bug.m_versionstart == -1 ) &&
|
||||
|
|
|
@ -6,6 +6,15 @@
|
|||
|
||||
namespace DriverDetails
|
||||
{
|
||||
// Enum of supported operating systems
|
||||
enum OS
|
||||
{
|
||||
OS_ALL = (1 << 0),
|
||||
OS_WINDOWS = (1 << 1),
|
||||
OS_LINUX = (1 << 2),
|
||||
OS_OSX = (1 << 3),
|
||||
OS_ANDROID = (1 << 4),
|
||||
};
|
||||
// Enum of known vendors
|
||||
// Tegra and Nvidia are separated out due to such substantial differences
|
||||
enum Vendor
|
||||
|
|
Loading…
Reference in New Issue