diff --git a/widget/GfxDriverInfo.cpp b/widget/GfxDriverInfo.cpp index 56bb87a3c1ec..6f9a74a4f45d 100644 --- a/widget/GfxDriverInfo.cpp +++ b/widget/GfxDriverInfo.cpp @@ -18,7 +18,7 @@ GfxDeviceFamily* GfxDriverInfo::mDeviceFamilies[DeviceFamilyMax]; nsAString* GfxDriverInfo::mDeviceVendors[DeviceVendorMax]; GfxDriverInfo::GfxDriverInfo() - : mOperatingSystem(DRIVER_OS_UNKNOWN), + : mOperatingSystem(OperatingSystem::Unknown), mOperatingSystemVersion(0), mAdapterVendor(GfxDriverInfo::GetDeviceVendor(VendorAll)), mDevices(allDevices), diff --git a/widget/GfxDriverInfo.h b/widget/GfxDriverInfo.h index 3e5cad79f2a8..bea17492d153 100644 --- a/widget/GfxDriverInfo.h +++ b/widget/GfxDriverInfo.h @@ -38,26 +38,27 @@ namespace mozilla { namespace widget { -enum OperatingSystem { - DRIVER_OS_UNKNOWN = 0, - DRIVER_OS_WINDOWS_XP, - DRIVER_OS_WINDOWS_SERVER_2003, - DRIVER_OS_WINDOWS_VISTA, - DRIVER_OS_WINDOWS_7, - DRIVER_OS_WINDOWS_8, - DRIVER_OS_WINDOWS_8_1, - DRIVER_OS_WINDOWS_10, - DRIVER_OS_LINUX, - DRIVER_OS_OS_X_10_5, - DRIVER_OS_OS_X_10_6, - DRIVER_OS_OS_X_10_7, - DRIVER_OS_OS_X_10_8, - DRIVER_OS_OS_X_10_9, - DRIVER_OS_OS_X_10_10, - DRIVER_OS_OS_X_10_11, - DRIVER_OS_ANDROID, - DRIVER_OS_IOS, - DRIVER_OS_ALL +enum class OperatingSystem { + Unknown, + Windows, + WindowsXP, + WindowsServer2003, + WindowsVista, + Windows7, + Windows8, + Windows8_1, + Windows10, + Linux, + OSX, + OSX10_5, + OSX10_6, + OSX10_7, + OSX10_8, + OSX10_9, + OSX10_10, + OSX10_11, + Android, + Ios }; enum VersionComparisonOp { @@ -277,11 +278,13 @@ ParseDriverVersion(const nsAString& aVersion, uint64_t *aNumericVersion) if (d < 0 || d > 0xffff) return false; *aNumericVersion = GFX_DRIVER_VERSION(a, b, c, d); + MOZ_ASSERT(*aNumericVersion != GfxDriverInfo::allDriverVersions); return true; #elif defined(ANDROID) // Can't use aVersion.ToInteger() because that's not compiled into our code // unless we have XPCOM_GLUE_AVOID_NSPR disabled. *aNumericVersion = atoi(NS_LossyConvertUTF16toASCII(aVersion).get()); + MOZ_ASSERT(*aNumericVersion != GfxDriverInfo::allDriverVersions); return true; #else return false; diff --git a/widget/GfxInfoBase.cpp b/widget/GfxInfoBase.cpp index 676e6115b616..f456b4ce1449 100644 --- a/widget/GfxInfoBase.cpp +++ b/widget/GfxInfoBase.cpp @@ -245,44 +245,42 @@ static OperatingSystem BlacklistOSToOperatingSystem(const nsAString& os) { if (os.EqualsLiteral("WINNT 5.1")) - return DRIVER_OS_WINDOWS_XP; + return OperatingSystem::WindowsXP; else if (os.EqualsLiteral("WINNT 5.2")) - return DRIVER_OS_WINDOWS_SERVER_2003; + return OperatingSystem::WindowsServer2003; else if (os.EqualsLiteral("WINNT 6.0")) - return DRIVER_OS_WINDOWS_VISTA; + return OperatingSystem::WindowsVista; else if (os.EqualsLiteral("WINNT 6.1")) - return DRIVER_OS_WINDOWS_7; + return OperatingSystem::Windows7; else if (os.EqualsLiteral("WINNT 6.2")) - return DRIVER_OS_WINDOWS_8; + return OperatingSystem::Windows8; else if (os.EqualsLiteral("WINNT 6.3")) - return DRIVER_OS_WINDOWS_8_1; + return OperatingSystem::Windows8_1; else if (os.EqualsLiteral("WINNT 10.0")) - return DRIVER_OS_WINDOWS_10; + return OperatingSystem::Windows10; else if (os.EqualsLiteral("Linux")) - return DRIVER_OS_LINUX; + return OperatingSystem::Linux; else if (os.EqualsLiteral("Darwin 9")) - return DRIVER_OS_OS_X_10_5; + return OperatingSystem::OSX10_5; else if (os.EqualsLiteral("Darwin 10")) - return DRIVER_OS_OS_X_10_6; + return OperatingSystem::OSX10_6; else if (os.EqualsLiteral("Darwin 11")) - return DRIVER_OS_OS_X_10_7; + return OperatingSystem::OSX10_7; else if (os.EqualsLiteral("Darwin 12")) - return DRIVER_OS_OS_X_10_8; + return OperatingSystem::OSX10_8; else if (os.EqualsLiteral("Darwin 13")) - return DRIVER_OS_OS_X_10_9; + return OperatingSystem::OSX10_9; else if (os.EqualsLiteral("Darwin 14")) - return DRIVER_OS_OS_X_10_10; + return OperatingSystem::OSX10_10; else if (os.EqualsLiteral("Darwin 15")) - return DRIVER_OS_OS_X_10_11; + return OperatingSystem::OSX10_11; else if (os.EqualsLiteral("Android")) - return DRIVER_OS_ANDROID; -#if defined (XP_WIN) + return OperatingSystem::Android; // For historical reasons, "All" in blocklist means "All Windows" else if (os.EqualsLiteral("All")) - return DRIVER_OS_ALL; -#endif + return OperatingSystem::Windows; - return DRIVER_OS_UNKNOWN; + return OperatingSystem::Unknown; } static GfxDeviceFamily* @@ -614,6 +612,44 @@ GfxInfoBase::GetFeatureStatus(int32_t aFeature, nsACString& aFailureId, int32_t* return rv; } +// Matching OS go somewhat beyond the simple equality check because of the +// "All Windows" and "All OS X" variations. +// +// aBlockedOS is describing the system(s) we are trying to block. +// aSystemOS is describing the system we are running on. +// +// aSystemOS should not be "Windows" or "OSX" - it should be set to +// a particular version instead. +// However, it is valid for aBlockedOS to be one of those generic values, +// as we could be blocking all of the versions. +inline bool +MatchingOperatingSystems(OperatingSystem aBlockedOS, OperatingSystem aSystemOS) +{ + MOZ_ASSERT(aSystemOS != OperatingSystem::Windows && + aSystemOS != OperatingSystem::OSX); + + // If the block entry OS is unknown, it doesn't match + if (aBlockedOS == OperatingSystem::Unknown) { + return false; + } + +#if defined (XP_WIN) + if (aBlockedOS == OperatingSystem::Windows) { + // We do want even "unknown" aSystemOS to fall under "all windows" + return true; + } +#endif + +#if defined (XP_MACOSX) + if (aBlockedOS == OperatingSystem::OSX) { + // We do want even "unknown" aSystemOS to fall under "all OS X" + return true; + } +#endif + + return aSystemOS == aBlockedOS; +} + int32_t GfxInfoBase::FindBlocklistedDeviceInList(const nsTArray& info, nsAString& aSuggestedVersion, @@ -626,14 +662,8 @@ GfxInfoBase::FindBlocklistedDeviceInList(const nsTArray& info, uint32_t i = 0; for (; i < info.Length(); i++) { // Do the operating system check first, no point in getting the driver - // info if we won't need to use it. If the OS of the system we are running - // on is unknown, we still let DRIVER_OS_ALL catch and disable it; - // if the OS of the downloadable entry is unknown, we skip the entry - // as invalid. - if (info[i].mOperatingSystem == DRIVER_OS_UNKNOWN || - (info[i].mOperatingSystem != DRIVER_OS_ALL && - info[i].mOperatingSystem != os)) - { + // info if we won't need to use it. + if (!MatchingOperatingSystems(info[i].mOperatingSystem, os)) { continue; } @@ -822,9 +852,7 @@ GfxInfoBase::GetFeatureStatusImpl(int32_t aFeature, // If an operating system was provided by the derived GetFeatureStatusImpl, // grab it here. Otherwise, the OS is unknown. - OperatingSystem os = DRIVER_OS_UNKNOWN; - if (aOS) - os = *aOS; + OperatingSystem os = (aOS ? *aOS : OperatingSystem::Unknown); nsAutoString adapterVendorID; nsAutoString adapterDeviceID; diff --git a/widget/GfxInfoX11.cpp b/widget/GfxInfoX11.cpp index 7712bdd4f1e5..d08cac1c76ae 100644 --- a/widget/GfxInfoX11.cpp +++ b/widget/GfxInfoX11.cpp @@ -284,7 +284,7 @@ GfxInfo::GetFeatureStatusImpl(int32_t aFeature, NS_ENSURE_ARG_POINTER(aStatus); *aStatus = nsIGfxInfo::FEATURE_STATUS_UNKNOWN; aSuggestedDriverVersion.SetIsVoid(true); - OperatingSystem os = DRIVER_OS_LINUX; + OperatingSystem os = OperatingSystem::Linux; if (aOS) *aOS = os; diff --git a/widget/android/GfxInfo.cpp b/widget/android/GfxInfo.cpp index e78cd9f2fb82..f1f7b0b8eaec 100644 --- a/widget/android/GfxInfo.cpp +++ b/widget/android/GfxInfo.cpp @@ -372,7 +372,7 @@ const nsTArray& GfxInfo::GetGfxDriverInfo() { if (mDriverInfo->IsEmpty()) { - APPEND_TO_DRIVER_BLOCKLIST2( DRIVER_OS_ALL, + APPEND_TO_DRIVER_BLOCKLIST2(OperatingSystem::Android, (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorAll), GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_OPENGL_LAYERS, nsIGfxInfo::FEATURE_STATUS_OK, DRIVER_COMPARISON_IGNORED, GfxDriverInfo::allDriverVersions, diff --git a/widget/cocoa/GfxInfo.mm b/widget/cocoa/GfxInfo.mm index 2b92ccbe49c5..1c76269548b3 100644 --- a/widget/cocoa/GfxInfo.mm +++ b/widget/cocoa/GfxInfo.mm @@ -41,21 +41,21 @@ OSXVersionToOperatingSystem(uint32_t aOSXVersion) if (nsCocoaFeatures::ExtractMajorVersion(aOSXVersion) == 10) { switch (nsCocoaFeatures::ExtractMinorVersion(aOSXVersion)) { case 6: - return DRIVER_OS_OS_X_10_6; + return OperatingSystem::OSX10_6; case 7: - return DRIVER_OS_OS_X_10_7; + return OperatingSystem::OSX10_7; case 8: - return DRIVER_OS_OS_X_10_8; + return OperatingSystem::OSX10_8; case 9: - return DRIVER_OS_OS_X_10_9; + return OperatingSystem::OSX10_9; case 10: - return DRIVER_OS_OS_X_10_10; + return OperatingSystem::OSX10_10; case 11: - return DRIVER_OS_OS_X_10_11; + return OperatingSystem::OSX10_11; } } - return DRIVER_OS_UNKNOWN; + return OperatingSystem::Unknown; } // The following three functions are derived from Chromium code static CFTypeRef SearchPortForProperty(io_registry_entry_t dspPort, @@ -310,13 +310,13 @@ const nsTArray& GfxInfo::GetGfxDriverInfo() { if (!mDriverInfo->Length()) { - IMPLEMENT_MAC_DRIVER_BLOCKLIST(DRIVER_OS_ALL, + IMPLEMENT_MAC_DRIVER_BLOCKLIST(OperatingSystem::OSX, (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorATI), GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_WEBGL_MSAA, nsIGfxInfo::FEATURE_BLOCKED_OS_VERSION, "FEATURE_FAILURE_MAC_ATI_NO_MSAA"); - IMPLEMENT_MAC_DRIVER_BLOCKLIST(DRIVER_OS_ALL, + IMPLEMENT_MAC_DRIVER_BLOCKLIST(OperatingSystem::OSX, (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorATI), (GfxDeviceFamily*) GfxDriverInfo::GetDeviceFamily(RadeonX1000), nsIGfxInfo::FEATURE_OPENGL_LAYERS, nsIGfxInfo::FEATURE_BLOCKED_DEVICE, "FEATURE_FAILURE_MAC_RADEONX1000_NO_TEXTURE2D"); - IMPLEMENT_MAC_DRIVER_BLOCKLIST(DRIVER_OS_ALL, + IMPLEMENT_MAC_DRIVER_BLOCKLIST(OperatingSystem::OSX, (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorNVIDIA), (GfxDeviceFamily*) GfxDriverInfo::GetDeviceFamily(Geforce7300GT), nsIGfxInfo::FEATURE_WEBGL_OPENGL, nsIGfxInfo::FEATURE_BLOCKED_DEVICE, "FEATURE_FAILURE_MAC_7300_NO_WEBGL"); } @@ -351,11 +351,16 @@ GfxInfo::GetFeatureStatusImpl(int32_t aFeature, } } else if (aFeature == nsIGfxInfo::FEATURE_CANVAS2D_ACCELERATION) { // See bug 1249659 - if (os > DRIVER_OS_OS_X_10_7) { - *aStatus = nsIGfxInfo::FEATURE_STATUS_OK; - } else { - *aStatus = nsIGfxInfo::FEATURE_BLOCKED_OS_VERSION; - aFailureId = "FEATURE_FAILURE_CANVAS_OSX_VERSION"; + switch(os) { + case OperatingSystem::OSX10_5: + case OperatingSystem::OSX10_6: + case OperatingSystem::OSX10_7: + *aStatus = nsIGfxInfo::FEATURE_BLOCKED_OS_VERSION; + aFailureId = "FEATURE_FAILURE_CANVAS_OSX_VERSION"; + break; + default: + *aStatus = nsIGfxInfo::FEATURE_STATUS_OK; + break; } return NS_OK; } diff --git a/widget/uikit/GfxInfo.cpp b/widget/uikit/GfxInfo.cpp index 9f605ebead91..2aea3b5eaba0 100644 --- a/widget/uikit/GfxInfo.cpp +++ b/widget/uikit/GfxInfo.cpp @@ -153,7 +153,7 @@ const nsTArray& GfxInfo::GetGfxDriverInfo() { if (mDriverInfo->IsEmpty()) { - APPEND_TO_DRIVER_BLOCKLIST2( DRIVER_OS_ALL, + APPEND_TO_DRIVER_BLOCKLIST2(OperatingSystem::Ios, (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorAll), GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_OPENGL_LAYERS, nsIGfxInfo::FEATURE_STATUS_OK, DRIVER_COMPARISON_IGNORED, GfxDriverInfo::allDriverVersions ); @@ -173,7 +173,7 @@ GfxInfo::GetFeatureStatusImpl(int32_t aFeature, aSuggestedDriverVersion.SetIsVoid(true); *aStatus = nsIGfxInfo::FEATURE_STATUS_UNKNOWN; if (aOS) - *aOS = DRIVER_OS_IOS; + *aOS = OperatingSystem::Ios; // OpenGL layers are never blacklisted on iOS. // This early return is so we avoid potentially slow diff --git a/widget/windows/GfxInfo.cpp b/widget/windows/GfxInfo.cpp index 0565192b0003..f4219a02615d 100644 --- a/widget/windows/GfxInfo.cpp +++ b/widget/windows/GfxInfo.cpp @@ -797,22 +797,22 @@ WindowsVersionToOperatingSystem(int32_t aWindowsVersion) { switch(aWindowsVersion) { case kWindowsXP: - return DRIVER_OS_WINDOWS_XP; + return OperatingSystem::WindowsXP; case kWindowsServer2003: - return DRIVER_OS_WINDOWS_SERVER_2003; + return OperatingSystem::WindowsServer2003; case kWindowsVista: - return DRIVER_OS_WINDOWS_VISTA; + return OperatingSystem::WindowsVista; case kWindows7: - return DRIVER_OS_WINDOWS_7; + return OperatingSystem::Windows7; case kWindows8: - return DRIVER_OS_WINDOWS_8; + return OperatingSystem::Windows8; case kWindows8_1: - return DRIVER_OS_WINDOWS_8_1; + return OperatingSystem::Windows8_1; case kWindows10: - return DRIVER_OS_WINDOWS_10; + return OperatingSystem::Windows10; case kWindowsUnknown: default: - return DRIVER_OS_UNKNOWN; + return OperatingSystem::Unknown; } } @@ -826,19 +826,19 @@ GfxInfo::GetGfxDriverInfo() * match for feature/OS/device found in the list will be used for the final * blacklisting call. */ - + /* * NVIDIA entries */ - APPEND_TO_DRIVER_BLOCKLIST( DRIVER_OS_WINDOWS_XP, + APPEND_TO_DRIVER_BLOCKLIST(OperatingSystem::WindowsXP, (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorNVIDIA), GfxDriverInfo::allDevices, GfxDriverInfo::allFeatures, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_LESS_THAN, V(6,14,11,8265), "FEATURE_FAILURE_NV_XP", "182.65" ); - APPEND_TO_DRIVER_BLOCKLIST( DRIVER_OS_WINDOWS_VISTA, + APPEND_TO_DRIVER_BLOCKLIST(OperatingSystem::WindowsVista, (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorNVIDIA), GfxDriverInfo::allDevices, GfxDriverInfo::allFeatures, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_LESS_THAN, V(8,17,11,8265), "FEATURE_FAILURE_NV_VISTA", "182.65" ); - APPEND_TO_DRIVER_BLOCKLIST( DRIVER_OS_WINDOWS_7, + APPEND_TO_DRIVER_BLOCKLIST(OperatingSystem::Windows7, (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorNVIDIA), GfxDriverInfo::allDevices, GfxDriverInfo::allFeatures, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_LESS_THAN, V(8,17,11,8265), "FEATURE_FAILURE_NV_W7", "182.65" ); @@ -846,23 +846,23 @@ GfxInfo::GetGfxDriverInfo() /* * AMD/ATI entries. 8.56.1.15 is the driver that shipped with Windows 7 RTM */ - APPEND_TO_DRIVER_BLOCKLIST( DRIVER_OS_ALL, + APPEND_TO_DRIVER_BLOCKLIST(OperatingSystem::Windows, (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorATI), GfxDriverInfo::allDevices, GfxDriverInfo::allFeatures, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_LESS_THAN, V(8,56,1,15), "FEATURE_FAILURE_AMD1", "8.56.1.15" ); - APPEND_TO_DRIVER_BLOCKLIST( DRIVER_OS_ALL, + APPEND_TO_DRIVER_BLOCKLIST(OperatingSystem::Windows, (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorAMD), GfxDriverInfo::allDevices, GfxDriverInfo::allFeatures, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_LESS_THAN, V(8,56,1,15), "FEATURE_FAILURE_AMD2", "8.56.1.15" ); // Bug 1099252 - APPEND_TO_DRIVER_BLOCKLIST2( DRIVER_OS_WINDOWS_7, + APPEND_TO_DRIVER_BLOCKLIST2(OperatingSystem::Windows7, (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorATI), GfxDriverInfo::allDevices, GfxDriverInfo::allFeatures, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_EQUAL, V(8,832,0,0), "FEATURE_FAILURE_BUG_1099252"); // Bug 1118695 - APPEND_TO_DRIVER_BLOCKLIST2( DRIVER_OS_WINDOWS_7, + APPEND_TO_DRIVER_BLOCKLIST2(OperatingSystem::Windows7, (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorATI), GfxDriverInfo::allDevices, GfxDriverInfo::allFeatures, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_EQUAL, V(8,783,2,2000), "FEATURE_FAILURE_BUG_1118695"); @@ -870,12 +870,12 @@ GfxInfo::GetGfxDriverInfo() /* * Bug 783517 - crashes in AMD driver on Windows 8 */ - APPEND_TO_DRIVER_BLOCKLIST_RANGE( DRIVER_OS_WINDOWS_8, + APPEND_TO_DRIVER_BLOCKLIST_RANGE(OperatingSystem::Windows8, (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorATI), GfxDriverInfo::allDevices, GfxDriverInfo::allFeatures, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_BETWEEN_INCLUSIVE_START, V(8,982,0,0), V(8,983,0,0), "FEATURE_FAILURE_BUG_783517_AMD", "!= 8.982.*.*" ); - APPEND_TO_DRIVER_BLOCKLIST_RANGE( DRIVER_OS_WINDOWS_8, + APPEND_TO_DRIVER_BLOCKLIST_RANGE(OperatingSystem::Windows8, (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorAMD), GfxDriverInfo::allDevices, GfxDriverInfo::allFeatures, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_BETWEEN_INCLUSIVE_START, V(8,982,0,0), V(8,983,0,0), @@ -887,19 +887,19 @@ GfxInfo::GetGfxDriverInfo() * bugs 584403, 584404, 620924 - crashes in atioglxx * + many complaints about incorrect rendering */ - APPEND_TO_DRIVER_BLOCKLIST2( DRIVER_OS_ALL, + APPEND_TO_DRIVER_BLOCKLIST2(OperatingSystem::Windows, (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorATI), GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_OPENGL_LAYERS, nsIGfxInfo::FEATURE_DISCOURAGED, DRIVER_LESS_THAN, GfxDriverInfo::allDriverVersions, "FEATURE_FAILURE_OGL_ATI_DIS" ); - APPEND_TO_DRIVER_BLOCKLIST2( DRIVER_OS_ALL, + APPEND_TO_DRIVER_BLOCKLIST2(OperatingSystem::Windows, (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorATI), GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_WEBGL_OPENGL, nsIGfxInfo::FEATURE_DISCOURAGED, DRIVER_LESS_THAN, GfxDriverInfo::allDriverVersions, "FEATURE_FAILURE_WEBGL_ATI_DIS" ); - APPEND_TO_DRIVER_BLOCKLIST2( DRIVER_OS_ALL, + APPEND_TO_DRIVER_BLOCKLIST2(OperatingSystem::Windows, (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorAMD), GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_OPENGL_LAYERS, nsIGfxInfo::FEATURE_DISCOURAGED, DRIVER_LESS_THAN, GfxDriverInfo::allDriverVersions, "FEATURE_FAILURE_OGL_AMD_DIS" ); - APPEND_TO_DRIVER_BLOCKLIST2( DRIVER_OS_ALL, + APPEND_TO_DRIVER_BLOCKLIST2(OperatingSystem::Windows, (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorAMD), GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_WEBGL_OPENGL, nsIGfxInfo::FEATURE_DISCOURAGED, DRIVER_LESS_THAN, GfxDriverInfo::allDriverVersions, "FEATURE_FAILURE_WEBGL_AMD_DIS" ); @@ -923,80 +923,80 @@ GfxInfo::GetGfxDriverInfo() nsIGfxInfo::FEATURE_DIRECT2D, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, \ DRIVER_LESS_THAN, driverVer, ruleId ) - IMPLEMENT_INTEL_DRIVER_BLOCKLIST_D2D(DRIVER_OS_WINDOWS_VISTA, IntelGMA500, V(7,14,10,1006), "FEATURE_FAILURE_594877_1"); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST_D2D(DRIVER_OS_WINDOWS_VISTA, IntelGMA900, GfxDriverInfo::allDriverVersions, "FEATURE_FAILURE_594877_2"); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST_D2D(DRIVER_OS_WINDOWS_VISTA, IntelGMA950, V(7,14,10,1504), "FEATURE_FAILURE_594877_3"); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST_D2D(DRIVER_OS_WINDOWS_VISTA, IntelGMA3150, V(7,14,10,2124), "FEATURE_FAILURE_594877_4"); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST_D2D(DRIVER_OS_WINDOWS_VISTA, IntelGMAX3000, V(7,15,10,1666), "FEATURE_FAILURE_594877_5"); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST_D2D(DRIVER_OS_WINDOWS_VISTA, IntelHDGraphicsToSandyBridge, V(8,15,10,2202), "FEATURE_FAILURE_594877_6"); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST_D2D(OperatingSystem::WindowsVista, IntelGMA500, V(7,14,10,1006), "FEATURE_FAILURE_594877_1"); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST_D2D(OperatingSystem::WindowsVista, IntelGMA900, GfxDriverInfo::allDriverVersions, "FEATURE_FAILURE_594877_2"); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST_D2D(OperatingSystem::WindowsVista, IntelGMA950, V(7,14,10,1504), "FEATURE_FAILURE_594877_3"); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST_D2D(OperatingSystem::WindowsVista, IntelGMA3150, V(7,14,10,2124), "FEATURE_FAILURE_594877_4"); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST_D2D(OperatingSystem::WindowsVista, IntelGMAX3000, V(7,15,10,1666), "FEATURE_FAILURE_594877_5"); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST_D2D(OperatingSystem::WindowsVista, IntelHDGraphicsToSandyBridge, V(8,15,10,2202), "FEATURE_FAILURE_594877_6"); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST_D2D(DRIVER_OS_WINDOWS_7, IntelGMA500, V(5,0,0,2026), "FEATURE_FAILURE_594877_7"); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST_D2D(DRIVER_OS_WINDOWS_7, IntelGMA900, GfxDriverInfo::allDriverVersions, "FEATURE_FAILURE_594877_8"); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST_D2D(DRIVER_OS_WINDOWS_7, IntelGMA950, V(8,15,10,1930), "FEATURE_FAILURE_594877_9"); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST_D2D(DRIVER_OS_WINDOWS_7, IntelGMA3150, V(8,14,10,2117), "FEATURE_FAILURE_594877_10"); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST_D2D(DRIVER_OS_WINDOWS_7, IntelGMAX3000, V(8,15,10,1930), "FEATURE_FAILURE_594877_11"); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST_D2D(DRIVER_OS_WINDOWS_7, IntelHDGraphicsToSandyBridge, V(8,15,10,2202), "FEATURE_FAILURE_594877_12"); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST_D2D(OperatingSystem::Windows7, IntelGMA500, V(5,0,0,2026), "FEATURE_FAILURE_594877_7"); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST_D2D(OperatingSystem::Windows7, IntelGMA900, GfxDriverInfo::allDriverVersions, "FEATURE_FAILURE_594877_8"); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST_D2D(OperatingSystem::Windows7, IntelGMA950, V(8,15,10,1930), "FEATURE_FAILURE_594877_9"); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST_D2D(OperatingSystem::Windows7, IntelGMA3150, V(8,14,10,2117), "FEATURE_FAILURE_594877_10"); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST_D2D(OperatingSystem::Windows7, IntelGMAX3000, V(8,15,10,1930), "FEATURE_FAILURE_594877_11"); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST_D2D(OperatingSystem::Windows7, IntelHDGraphicsToSandyBridge, V(8,15,10,2202), "FEATURE_FAILURE_594877_12"); /* Disable Direct2D on Intel GMAX4500 devices because of rendering corruption discovered * in bug 1180379. These seems to affect even the most recent drivers. We're black listing * all of the devices to be safe even though we've only confirmed the issue on the G45 */ - APPEND_TO_DRIVER_BLOCKLIST2(DRIVER_OS_ALL, + APPEND_TO_DRIVER_BLOCKLIST2(OperatingSystem::Windows, (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorIntel), (GfxDeviceFamily*) GfxDriverInfo::GetDeviceFamily(IntelGMAX4500HD), nsIGfxInfo::FEATURE_DIRECT2D, nsIGfxInfo::FEATURE_BLOCKED_DEVICE, DRIVER_LESS_THAN, GfxDriverInfo::allDriverVersions, "FEATURE_FAILURE_1180379"); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_XP, IntelGMA500, V(3,0,20,3200), "FEATURE_FAILURE_INTEL_1"); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_XP, IntelGMA900, V(6,14,10,4764), "FEATURE_FAILURE_INTEL_2"); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_XP, IntelGMA950, V(6,14,10,4926), "FEATURE_FAILURE_INTEL_3"); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_XP, IntelGMA3150, V(6,14,10,5134), "FEATURE_FAILURE_INTEL_4"); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_XP, IntelGMAX3000, V(6,14,10,5218), "FEATURE_FAILURE_INTEL_5"); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_XP, IntelGMAX4500HD, V(6,14,10,4969), "FEATURE_FAILURE_INTEL_6"); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_XP, IntelHDGraphicsToSandyBridge, V(6,14,10,4969), "FEATURE_FAILURE_INTEL_7"); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST(OperatingSystem::WindowsXP, IntelGMA500, V(3,0,20,3200), "FEATURE_FAILURE_INTEL_1"); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST(OperatingSystem::WindowsXP, IntelGMA900, V(6,14,10,4764), "FEATURE_FAILURE_INTEL_2"); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST(OperatingSystem::WindowsXP, IntelGMA950, V(6,14,10,4926), "FEATURE_FAILURE_INTEL_3"); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST(OperatingSystem::WindowsXP, IntelGMA3150, V(6,14,10,5134), "FEATURE_FAILURE_INTEL_4"); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST(OperatingSystem::WindowsXP, IntelGMAX3000, V(6,14,10,5218), "FEATURE_FAILURE_INTEL_5"); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST(OperatingSystem::WindowsXP, IntelGMAX4500HD, V(6,14,10,4969), "FEATURE_FAILURE_INTEL_6"); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST(OperatingSystem::WindowsXP, IntelHDGraphicsToSandyBridge, V(6,14,10,4969), "FEATURE_FAILURE_INTEL_7"); // StrechRect seems to suffer from precision issues which leads to artifacting // during content drawing starting with at least version 6.14.10.5082 // and going until 6.14.10.5218. See bug 919454 and bug 949275 for more info. - APPEND_TO_DRIVER_BLOCKLIST_RANGE(DRIVER_OS_WINDOWS_XP, + APPEND_TO_DRIVER_BLOCKLIST_RANGE(OperatingSystem::WindowsXP, const_cast(GfxDriverInfo::GetDeviceVendor(VendorIntel)), const_cast(GfxDriverInfo::GetDeviceFamily(IntelGMAX4500HD)), GfxDriverInfo::allFeatures, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_BETWEEN_EXCLUSIVE, V(6,14,10,5076), V(6,14,10,5218), "FEATURE_FAILURE_INTEL_8", "6.14.10.5218"); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_VISTA, IntelGMA500, V(3,0,20,3200), "FEATURE_FAILURE_INTEL_9"); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_VISTA, IntelGMA900, GfxDriverInfo::allDriverVersions, "FEATURE_FAILURE_INTEL_10"); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_VISTA, IntelGMA950, V(7,14,10,1504), "FEATURE_FAILURE_INTEL_11"); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_VISTA, IntelGMA3150, V(7,14,10,1910), "FEATURE_FAILURE_INTEL_12"); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_VISTA, IntelGMAX3000, V(7,15,10,1666), "FEATURE_FAILURE_INTEL_13"); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_VISTA, IntelGMAX4500HD, V(7,15,10,1666), "FEATURE_FAILURE_INTEL_14"); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_VISTA, IntelHDGraphicsToSandyBridge, V(7,15,10,1666), "FEATURE_FAILURE_INTEL_15"); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST(OperatingSystem::WindowsVista, IntelGMA500, V(3,0,20,3200), "FEATURE_FAILURE_INTEL_9"); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST(OperatingSystem::WindowsVista, IntelGMA900, GfxDriverInfo::allDriverVersions, "FEATURE_FAILURE_INTEL_10"); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST(OperatingSystem::WindowsVista, IntelGMA950, V(7,14,10,1504), "FEATURE_FAILURE_INTEL_11"); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST(OperatingSystem::WindowsVista, IntelGMA3150, V(7,14,10,1910), "FEATURE_FAILURE_INTEL_12"); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST(OperatingSystem::WindowsVista, IntelGMAX3000, V(7,15,10,1666), "FEATURE_FAILURE_INTEL_13"); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST(OperatingSystem::WindowsVista, IntelGMAX4500HD, V(7,15,10,1666), "FEATURE_FAILURE_INTEL_14"); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST(OperatingSystem::WindowsVista, IntelHDGraphicsToSandyBridge, V(7,15,10,1666), "FEATURE_FAILURE_INTEL_15"); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_7, IntelGMA500, V(5,0,0,2026), "FEATURE_FAILURE_INTEL_16"); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_7, IntelGMA900, GfxDriverInfo::allDriverVersions, "FEATURE_FAILURE_INTEL_17"); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_7, IntelGMA950, V(8,15,10,1930), "FEATURE_FAILURE_INTEL_18"); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_7, IntelGMA3150, V(8,14,10,1972), "FEATURE_FAILURE_INTEL_19"); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_7, IntelGMAX3000, V(7,15,10,1666), "FEATURE_FAILURE_INTEL_20"); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_7, IntelGMAX4500HD, V(7,15,10,1666), "FEATURE_FAILURE_INTEL_21"); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_7, IntelHDGraphicsToSandyBridge, V(7,15,10,1666), "FEATURE_FAILURE_INTEL_22"); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST(OperatingSystem::Windows7, IntelGMA500, V(5,0,0,2026), "FEATURE_FAILURE_INTEL_16"); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST(OperatingSystem::Windows7, IntelGMA900, GfxDriverInfo::allDriverVersions, "FEATURE_FAILURE_INTEL_17"); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST(OperatingSystem::Windows7, IntelGMA950, V(8,15,10,1930), "FEATURE_FAILURE_INTEL_18"); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST(OperatingSystem::Windows7, IntelGMA3150, V(8,14,10,1972), "FEATURE_FAILURE_INTEL_19"); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST(OperatingSystem::Windows7, IntelGMAX3000, V(7,15,10,1666), "FEATURE_FAILURE_INTEL_20"); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST(OperatingSystem::Windows7, IntelGMAX4500HD, V(7,15,10,1666), "FEATURE_FAILURE_INTEL_21"); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST(OperatingSystem::Windows7, IntelHDGraphicsToSandyBridge, V(7,15,10,1666), "FEATURE_FAILURE_INTEL_22"); // Bug 1074378 - APPEND_TO_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_7, + APPEND_TO_DRIVER_BLOCKLIST(OperatingSystem::Windows7, (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorIntel), (GfxDeviceFamily*) GfxDriverInfo::GetDeviceFamily(IntelGMAX4500HD), GfxDriverInfo::allFeatures, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_EQUAL, V(8,15,10,1749), "FEATURE_FAILURE_BUG_1074378_1", "8.15.10.2342"); - APPEND_TO_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_7, + APPEND_TO_DRIVER_BLOCKLIST(OperatingSystem::Windows7, (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorIntel), (GfxDeviceFamily*) GfxDriverInfo::GetDeviceFamily(IntelHDGraphicsToSandyBridge), GfxDriverInfo::allFeatures, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_EQUAL, V(8,15,10,1749), "FEATURE_FAILURE_BUG_1074378_2", "8.15.10.2342"); /* OpenGL on any Intel hardware is discouraged */ - APPEND_TO_DRIVER_BLOCKLIST2( DRIVER_OS_ALL, + APPEND_TO_DRIVER_BLOCKLIST2(OperatingSystem::Windows, (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorIntel), GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_OPENGL_LAYERS, nsIGfxInfo::FEATURE_DISCOURAGED, DRIVER_LESS_THAN, GfxDriverInfo::allDriverVersions, "FEATURE_FAILURE_INTEL_OGL_DIS" ); - APPEND_TO_DRIVER_BLOCKLIST2( DRIVER_OS_ALL, + APPEND_TO_DRIVER_BLOCKLIST2(OperatingSystem::Windows, (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorIntel), GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_WEBGL_OPENGL, nsIGfxInfo::FEATURE_DISCOURAGED, DRIVER_LESS_THAN, GfxDriverInfo::allDriverVersions, "FEATURE_FAILURE_INTEL_WEBGL_DIS" ); @@ -1005,7 +1005,7 @@ GfxInfo::GetGfxDriverInfo() * Disable acceleration on Intel HD 3000 for graphics drivers <= 8.15.10.2321. * See bug 1018278 and bug 1060736. */ - APPEND_TO_DRIVER_BLOCKLIST( DRIVER_OS_ALL, + APPEND_TO_DRIVER_BLOCKLIST(OperatingSystem::Windows, (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorIntel), (GfxDeviceFamily*) GfxDriverInfo::GetDeviceFamily(IntelHD3000), GfxDriverInfo::allFeatures, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_LESS_THAN_OR_EQUAL, V(8,15,10,2321), "FEATURE_FAILURE_BUG_1018278", "8.15.10.2342"); @@ -1013,7 +1013,7 @@ GfxInfo::GetGfxDriverInfo() /* Disable D2D on Win7 on Intel HD Graphics on driver <= 8.15.10.2302 * See bug 806786 */ - APPEND_TO_DRIVER_BLOCKLIST2( DRIVER_OS_WINDOWS_7, + APPEND_TO_DRIVER_BLOCKLIST2( OperatingSystem::Windows7, (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorIntel), (GfxDeviceFamily*) GfxDriverInfo::GetDeviceFamily(IntelMobileHDGraphics), nsIGfxInfo::FEATURE_DIRECT2D, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_LESS_THAN_OR_EQUAL, V(8,15,10,2302), "FEATURE_FAILURE_BUG_806786" ); @@ -1021,7 +1021,7 @@ GfxInfo::GetGfxDriverInfo() /* Disable D2D on Win8 on Intel HD Graphics on driver <= 8.15.10.2302 * See bug 804144 and 863683 */ - APPEND_TO_DRIVER_BLOCKLIST2( DRIVER_OS_WINDOWS_8, + APPEND_TO_DRIVER_BLOCKLIST2( OperatingSystem::Windows8, (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorIntel), (GfxDeviceFamily*) GfxDriverInfo::GetDeviceFamily(IntelMobileHDGraphics), nsIGfxInfo::FEATURE_DIRECT2D, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_LESS_THAN_OR_EQUAL, V(8,15,10,2302), "FEATURE_FAILURE_BUG_804144" ); @@ -1029,7 +1029,7 @@ GfxInfo::GetGfxDriverInfo() /* Disable D3D11 layers on Intel G41 express graphics and Intel GM965, Intel X3100, for causing device resets. * See bug 1116812. */ - APPEND_TO_DRIVER_BLOCKLIST2(DRIVER_OS_ALL, + APPEND_TO_DRIVER_BLOCKLIST2(OperatingSystem::Windows, (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorIntel), (GfxDeviceFamily*) GfxDriverInfo::GetDeviceFamily(Bug1116812), nsIGfxInfo::FEATURE_DIRECT3D_11_LAYERS, nsIGfxInfo::FEATURE_BLOCKED_DEVICE, DRIVER_LESS_THAN, GfxDriverInfo::allDriverVersions, "FEATURE_FAILURE_BUG_1116812" ); @@ -1037,11 +1037,11 @@ GfxInfo::GetGfxDriverInfo() /* Disable D3D11 layers on Intel GMA 3150 for failing to allocate a shared handle for textures. * See bug 1207665. Additionally block D2D so we don't accidentally use WARP. */ - APPEND_TO_DRIVER_BLOCKLIST2(DRIVER_OS_ALL, + APPEND_TO_DRIVER_BLOCKLIST2(OperatingSystem::Windows, (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorIntel), (GfxDeviceFamily*) GfxDriverInfo::GetDeviceFamily(Bug1207665), nsIGfxInfo::FEATURE_DIRECT3D_11_LAYERS, nsIGfxInfo::FEATURE_BLOCKED_DEVICE, DRIVER_LESS_THAN, GfxDriverInfo::allDriverVersions, "FEATURE_FAILURE_BUG_1207665_1" ); - APPEND_TO_DRIVER_BLOCKLIST2(DRIVER_OS_ALL, + APPEND_TO_DRIVER_BLOCKLIST2(OperatingSystem::Windows, (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorIntel), (GfxDeviceFamily*) GfxDriverInfo::GetDeviceFamily(Bug1207665), nsIGfxInfo::FEATURE_DIRECT2D, nsIGfxInfo::FEATURE_BLOCKED_DEVICE, DRIVER_LESS_THAN, GfxDriverInfo::allDriverVersions, "FEATURE_FAILURE_BUG_1207665_2" ); @@ -1049,11 +1049,11 @@ GfxInfo::GetGfxDriverInfo() /* Disable D2D on AMD Catalyst 14.4 until 14.6 * See bug 984488 */ - APPEND_TO_DRIVER_BLOCKLIST_RANGE( DRIVER_OS_ALL, + APPEND_TO_DRIVER_BLOCKLIST_RANGE(OperatingSystem::Windows, (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorATI), GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_DIRECT2D, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_BETWEEN_INCLUSIVE_START, V(14,1,0,0), V(14,2,0,0), "FEATURE_FAILURE_BUG_984488_1", "ATI Catalyst 14.6+"); - APPEND_TO_DRIVER_BLOCKLIST_RANGE( DRIVER_OS_ALL, + APPEND_TO_DRIVER_BLOCKLIST_RANGE(OperatingSystem::Windows, (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorAMD), GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_DIRECT2D, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_BETWEEN_INCLUSIVE_START, V(14,1,0,0), V(14,2,0,0), "FEATURE_FAILURE_BUG_984488_2", "ATI Catalyst 14.6+"); @@ -1061,65 +1061,65 @@ GfxInfo::GetGfxDriverInfo() /* Disable D3D9 layers on NVIDIA 6100/6150/6200 series due to glitches * whilst scrolling. See bugs: 612007, 644787 & 645872. */ - APPEND_TO_DRIVER_BLOCKLIST2( DRIVER_OS_ALL, + APPEND_TO_DRIVER_BLOCKLIST2(OperatingSystem::Windows, (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorNVIDIA), (GfxDeviceFamily*) GfxDriverInfo::GetDeviceFamily(NvidiaBlockD3D9Layers), nsIGfxInfo::FEATURE_DIRECT3D_9_LAYERS, nsIGfxInfo::FEATURE_BLOCKED_DEVICE, DRIVER_LESS_THAN, GfxDriverInfo::allDriverVersions, "FEATURE_FAILURE_BUG_612007" ); /* Microsoft RemoteFX; blocked less than 6.2.0.0 */ - APPEND_TO_DRIVER_BLOCKLIST( DRIVER_OS_ALL, + APPEND_TO_DRIVER_BLOCKLIST(OperatingSystem::Windows, (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorMicrosoft), GfxDriverInfo::allDevices, GfxDriverInfo::allFeatures, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_LESS_THAN, V(6,2,0,0), "< 6.2.0.0", "FEATURE_FAILURE_REMOTE_FX" ); /* Bug 1008759: Optimus (NVidia) crash. Disable D2D on NV 310M. */ - APPEND_TO_DRIVER_BLOCKLIST2(DRIVER_OS_ALL, + APPEND_TO_DRIVER_BLOCKLIST2(OperatingSystem::Windows, (nsAString&)GfxDriverInfo::GetDeviceVendor(VendorNVIDIA), (GfxDeviceFamily*)GfxDriverInfo::GetDeviceFamily(Nvidia310M), nsIGfxInfo::FEATURE_DIRECT2D, nsIGfxInfo::FEATURE_BLOCKED_DEVICE, DRIVER_LESS_THAN, GfxDriverInfo::allDriverVersions, "FEATURE_FAILURE_BUG_1008759"); /* Bug 1139503: DXVA crashes with ATI cards on windows 10. */ - APPEND_TO_DRIVER_BLOCKLIST2(DRIVER_OS_WINDOWS_10, + APPEND_TO_DRIVER_BLOCKLIST2(OperatingSystem::Windows10, (nsAString&)GfxDriverInfo::GetDeviceVendor(VendorATI), GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_HARDWARE_VIDEO_DECODING, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_EQUAL, V(15,200,1006,0), "FEATURE_FAILURE_BUG_1139503"); /* Bug 1213107: D3D9 crashes with ATI cards on Windows 7. */ - APPEND_TO_DRIVER_BLOCKLIST_RANGE(DRIVER_OS_WINDOWS_7, + APPEND_TO_DRIVER_BLOCKLIST_RANGE(OperatingSystem::Windows7, (nsAString&)GfxDriverInfo::GetDeviceVendor(VendorATI), GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_HARDWARE_VIDEO_DECODING, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_BETWEEN_INCLUSIVE, V(8,861,0,0), V(8,862,6,5000), "FEATURE_FAILURE_BUG_1213107_1", "Radeon driver > 8.862.6.5000"); - APPEND_TO_DRIVER_BLOCKLIST_RANGE(DRIVER_OS_WINDOWS_7, + APPEND_TO_DRIVER_BLOCKLIST_RANGE(OperatingSystem::Windows7, (nsAString&)GfxDriverInfo::GetDeviceVendor(VendorATI), GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_WEBGL_ANGLE, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_BETWEEN_INCLUSIVE, V(8,861,0,0), V(8,862,6,5000), "FEATURE_FAILURE_BUG_1213107_2", "Radeon driver > 8.862.6.5000"); /* This may not be needed at all */ - APPEND_TO_DRIVER_BLOCKLIST2(DRIVER_OS_WINDOWS_7, + APPEND_TO_DRIVER_BLOCKLIST2(OperatingSystem::Windows7, (nsAString&)GfxDriverInfo::GetDeviceVendor(VendorIntel), (GfxDeviceFamily*)GfxDriverInfo::GetDeviceFamily(Bug1155608), nsIGfxInfo::FEATURE_HARDWARE_VIDEO_DECODING, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_LESS_THAN, V(8,15,10,2869), "FEATURE_FAILURE_INTEL_W7_HW_DECODING"); /* Bug 1203199/1092166: DXVA startup crashes on some intel drivers. */ - APPEND_TO_DRIVER_BLOCKLIST_RANGE(DRIVER_OS_ALL, + APPEND_TO_DRIVER_BLOCKLIST_RANGE(OperatingSystem::Windows, (nsAString&)GfxDriverInfo::GetDeviceVendor(VendorIntel), GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_HARDWARE_VIDEO_DECODING, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_BETWEEN_INCLUSIVE, V(9,17,10,0), V(9,17,10,2849), "FEATURE_FAILURE_BUG_1203199_1", "Intel driver > 9.17.10.2849"); - APPEND_TO_DRIVER_BLOCKLIST2(DRIVER_OS_ALL, + APPEND_TO_DRIVER_BLOCKLIST2(OperatingSystem::Windows, (nsAString&)GfxDriverInfo::GetDeviceVendor(VendorNVIDIA), (GfxDeviceFamily*)GfxDriverInfo::GetDeviceFamily(Nvidia8800GTS), nsIGfxInfo::FEATURE_HARDWARE_VIDEO_DECODING, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_EQUAL, V(9,18,13,4052), "FEATURE_FAILURE_BUG_1203199_2"); /* Bug 1137716: XXX this should really check for the matching Intel piece as well. * Unfortunately, we don't have the infrastructure to do that */ - APPEND_TO_DRIVER_BLOCKLIST_RANGE_GPU2(DRIVER_OS_WINDOWS_7, + APPEND_TO_DRIVER_BLOCKLIST_RANGE_GPU2(OperatingSystem::Windows7, (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorNVIDIA), (GfxDeviceFamily*)GfxDriverInfo::GetDeviceFamily(Bug1137716), GfxDriverInfo::allFeatures, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_BETWEEN_INCLUSIVE, V(8,17,12,5730), V(8,17,12,6901), "FEATURE_FAILURE_BUG_1137716", "Nvidia driver > 8.17.12.6901"); /* Bug 1153381: WebGL issues with D3D11 ANGLE on Intel. These may be fixed by an ANGLE update. */ - APPEND_TO_DRIVER_BLOCKLIST2(DRIVER_OS_ALL, + APPEND_TO_DRIVER_BLOCKLIST2(OperatingSystem::Windows, (nsAString&)GfxDriverInfo::GetDeviceVendor(VendorIntel), (GfxDeviceFamily*)GfxDriverInfo::GetDeviceFamily(IntelGMAX4500HD), nsIGfxInfo::FEATURE_DIRECT3D_11_ANGLE, nsIGfxInfo::FEATURE_BLOCKED_DEVICE, DRIVER_LESS_THAN, GfxDriverInfo::allDriverVersions, "FEATURE_FAILURE_BUG_1153381"); @@ -1196,8 +1196,8 @@ GfxInfo::GetFeatureStatusImpl(int32_t aFeature, // Windows Server 2003 should be just like Windows XP for present purpose, but still has a different version number. // OTOH Windows Server 2008 R1 and R2 already have the same version numbers as Vista and Seven respectively - if (os == DRIVER_OS_WINDOWS_SERVER_2003) - os = DRIVER_OS_WINDOWS_XP; + if (os == OperatingSystem::WindowsServer2003) + os = OperatingSystem::WindowsXP; if (mHasDriverVersionMismatch) { *aStatus = nsIGfxInfo::FEATURE_BLOCKED_MISMATCHED_VERSION;