@@ -317,6 +317,9 @@ uint32_t ParseIDFromDeviceID(const nsAString& key, const nsAString& prefix,
317
317
// based on http://msdn.microsoft.com/en-us/library/ms724834(VS.85).aspx
318
318
enum {
319
319
kWindowsUnknown = 0 ,
320
+ kWindowsXP = 0x50001 ,
321
+ kWindowsServer2003 = 0x50002 ,
322
+ kWindowsVista = 0x60000 ,
320
323
kWindows7 = 0x60001 ,
321
324
kWindows8 = 0x60002 ,
322
325
kWindows8_1 = 0x60003 ,
@@ -1154,6 +1157,12 @@ void GfxInfo::AddCrashReportAnnotations() {
1154
1157
static OperatingSystem WindowsVersionToOperatingSystem (
1155
1158
int32_t aWindowsVersion) {
1156
1159
switch (aWindowsVersion) {
1160
+ case kWindowsXP :
1161
+ return OperatingSystem::WindowsXP;
1162
+ case kWindowsServer2003 :
1163
+ return OperatingSystem::WindowsServer2003;
1164
+ case kWindowsVista :
1165
+ return OperatingSystem::WindowsVista;
1157
1166
case kWindows7 :
1158
1167
return OperatingSystem::Windows7;
1159
1168
case kWindows8 :
@@ -1211,6 +1220,12 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
1211
1220
/*
1212
1221
* NVIDIA entries
1213
1222
*/
1223
+ APPEND_TO_DRIVER_BLOCKLIST (
1224
+ OperatingSystem::WindowsXP, DeviceFamily::NvidiaAll,
1225
+ GfxDriverInfo::optionalFeatures,
1226
+ nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_LESS_THAN_OR_EQUAL,
1227
+ V (6 , 14 , 11 , 8745 ), " FEATURE_FAILURE_NV_XP" ,
1228
+ " nVidia driver > 187.45" );
1214
1229
/*
1215
1230
* The last 5 digit of the NVIDIA driver version maps to the version that
1216
1231
* NVIDIA uses. The minor version (15, 16, 17) corresponds roughtly to the
@@ -1221,12 +1236,24 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
1221
1236
* 187.45 (late October 2009) and earlier contain a bug which can cause us
1222
1237
* to crash on shutdown.
1223
1238
*/
1239
+ APPEND_TO_DRIVER_BLOCKLIST (
1240
+ OperatingSystem::WindowsVista, DeviceFamily::NvidiaAll,
1241
+ GfxDriverInfo::optionalFeatures,
1242
+ nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_LESS_THAN_OR_EQUAL,
1243
+ V (8 , 15 , 11 , 8745 ), " FEATURE_FAILURE_NV_VISTA_15" ,
1244
+ " nVidia driver > 187.45" );
1224
1245
APPEND_TO_DRIVER_BLOCKLIST (
1225
1246
OperatingSystem::Windows7, DeviceFamily::NvidiaAll,
1226
1247
GfxDriverInfo::optionalFeatures,
1227
1248
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_LESS_THAN_OR_EQUAL,
1228
1249
V (8 , 15 , 11 , 8745 ), " FEATURE_FAILURE_NV_W7_15" ,
1229
1250
" nVidia driver > 187.45" );
1251
+ APPEND_TO_DRIVER_BLOCKLIST_RANGE (
1252
+ OperatingSystem::WindowsVista, DeviceFamily::NvidiaAll,
1253
+ GfxDriverInfo::optionalFeatures,
1254
+ nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION,
1255
+ DRIVER_BETWEEN_INCLUSIVE_START, V (8 , 16 , 10 , 0000 ), V (8 , 16 , 11 , 8745 ),
1256
+ " FEATURE_FAILURE_NV_VISTA_16" , " nVidia driver > 187.45" );
1230
1257
APPEND_TO_DRIVER_BLOCKLIST_RANGE (
1231
1258
OperatingSystem::Windows7, DeviceFamily::NvidiaAll,
1232
1259
GfxDriverInfo::optionalFeatures,
@@ -1235,6 +1262,12 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
1235
1262
" FEATURE_FAILURE_NV_W7_16" , " nVidia driver > 187.45" );
1236
1263
// Telemetry doesn't show any driver in this range so it might not even be
1237
1264
// required.
1265
+ APPEND_TO_DRIVER_BLOCKLIST_RANGE (
1266
+ OperatingSystem::WindowsVista, DeviceFamily::NvidiaAll,
1267
+ GfxDriverInfo::optionalFeatures,
1268
+ nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION,
1269
+ DRIVER_BETWEEN_INCLUSIVE_START, V (8 , 17 , 10 , 0000 ), V (8 , 17 , 11 , 8745 ),
1270
+ " FEATURE_FAILURE_NV_VISTA_17" , " nVidia driver > 187.45" );
1238
1271
APPEND_TO_DRIVER_BLOCKLIST_RANGE (
1239
1272
OperatingSystem::Windows7, DeviceFamily::NvidiaAll,
1240
1273
GfxDriverInfo::optionalFeatures,
@@ -1361,6 +1394,25 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
1361
1394
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, \
1362
1395
DRIVER_BUILD_ID_LESS_THAN, driverVer, ruleId)
1363
1396
1397
+ IMPLEMENT_INTEL_DRIVER_BLOCKLIST_D2D (OperatingSystem::WindowsVista,
1398
+ DeviceFamily::IntelGMA500, 2026 ,
1399
+ " FEATURE_FAILURE_594877_1" );
1400
+ IMPLEMENT_INTEL_DRIVER_BLOCKLIST_D2D (
1401
+ OperatingSystem::WindowsVista, DeviceFamily::IntelGMA900,
1402
+ GfxDriverInfo::allDriverVersions, " FEATURE_FAILURE_594877_2" );
1403
+ IMPLEMENT_INTEL_DRIVER_BLOCKLIST_D2D (OperatingSystem::WindowsVista,
1404
+ DeviceFamily::IntelGMA950, 1930 ,
1405
+ " FEATURE_FAILURE_594877_3" );
1406
+ IMPLEMENT_INTEL_DRIVER_BLOCKLIST_D2D (OperatingSystem::WindowsVista,
1407
+ DeviceFamily::IntelGMA3150, 2117 ,
1408
+ " FEATURE_FAILURE_594877_4" );
1409
+ IMPLEMENT_INTEL_DRIVER_BLOCKLIST_D2D (OperatingSystem::WindowsVista,
1410
+ DeviceFamily::IntelGMAX3000, 1930 ,
1411
+ " FEATURE_FAILURE_594877_5" );
1412
+ IMPLEMENT_INTEL_DRIVER_BLOCKLIST_D2D (
1413
+ OperatingSystem::WindowsVista, DeviceFamily::IntelHDGraphicsToSandyBridge,
1414
+ 2202 , " FEATURE_FAILURE_594877_6" );
1415
+
1364
1416
IMPLEMENT_INTEL_DRIVER_BLOCKLIST_D2D (OperatingSystem::Windows7,
1365
1417
DeviceFamily::IntelGMA500, 2026 ,
1366
1418
" FEATURE_FAILURE_594877_7" );
@@ -1391,6 +1443,60 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
1391
1443
DRIVER_LESS_THAN, GfxDriverInfo::allDriverVersions,
1392
1444
" FEATURE_FAILURE_1180379" );
1393
1445
1446
+ IMPLEMENT_INTEL_DRIVER_BLOCKLIST (
1447
+ OperatingSystem::WindowsXP, DeviceFamily::IntelGMA500, V (3 ,0 ,20 ,3200 ),
1448
+ " FEATURE_FAILURE_INTEL_1" );
1449
+ IMPLEMENT_INTEL_DRIVER_BLOCKLIST (
1450
+ OperatingSystem::WindowsXP, DeviceFamily::IntelGMA900,
1451
+ GfxDriverInfo::allDriverVersions, " FEATURE_FAILURE_INTEL_2" );
1452
+ IMPLEMENT_INTEL_DRIVER_BLOCKLIST (
1453
+ OperatingSystem::WindowsXP, DeviceFamily::IntelGMA950,
1454
+ V (6 , 14 , 10 , 4926 ), " FEATURE_FAILURE_INTEL_3" );
1455
+ IMPLEMENT_INTEL_DRIVER_BLOCKLIST (
1456
+ OperatingSystem::WindowsXP, DeviceFamily::IntelGMA3150,
1457
+ V (6 , 14 , 10 , 5134 ), " FEATURE_FAILURE_INTEL_4" );
1458
+ IMPLEMENT_INTEL_DRIVER_BLOCKLIST (
1459
+ OperatingSystem::WindowsXP, DeviceFamily::IntelGMAX3000,
1460
+ V (6 , 14 , 10 , 5218 ), " FEATURE_FAILURE_INTEL_5" );
1461
+ IMPLEMENT_INTEL_DRIVER_BLOCKLIST (
1462
+ OperatingSystem::WindowsXP, DeviceFamily::IntelGMAX4500HD,
1463
+ V (6 , 14 , 10 , 4969 ), " FEATURE_FAILURE_INTEL_6" );
1464
+ IMPLEMENT_INTEL_DRIVER_BLOCKLIST (
1465
+ OperatingSystem::WindowsXP, DeviceFamily::IntelHDGraphicsToSandyBridge,
1466
+ V (6 , 14 , 10 , 4969 ), " FEATURE_FAILURE_INTEL_7" );
1467
+
1468
+ // StrechRect seems to suffer from precision issues which leads to artifacting
1469
+ // during content drawing starting with at least version 6.14.10.5082
1470
+ // and going until 6.14.10.5218. See bug 919454 and bug 949275 for more info.
1471
+ APPEND_TO_DRIVER_BLOCKLIST_RANGE (
1472
+ OperatingSystem::WindowsXP, DeviceFamily::IntelGMAX4500HD,
1473
+ GfxDriverInfo::optionalFeatures,
1474
+ nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION,
1475
+ DRIVER_BETWEEN_EXCLUSIVE, V (6 , 14 , 10 , 5076 ), V (6 , 14 , 10 , 5218 ),
1476
+ " FEATURE_FAILURE_INTEL_8" , " 6.14.10.5218" );
1477
+
1478
+ IMPLEMENT_INTEL_DRIVER_BLOCKLIST (
1479
+ OperatingSystem::WindowsVista, DeviceFamily::IntelGMA500, V (3 , 0 , 20 , 3200 ),
1480
+ " FEATURE_FAILURE_INTEL_9" );
1481
+ IMPLEMENT_INTEL_DRIVER_BLOCKLIST (
1482
+ OperatingSystem::WindowsVista, DeviceFamily::IntelGMA900,
1483
+ GfxDriverInfo::allDriverVersions, " FEATURE_FAILURE_INTEL_10" );
1484
+ IMPLEMENT_INTEL_DRIVER_BLOCKLIST (
1485
+ OperatingSystem::WindowsVista, DeviceFamily::IntelGMA950,
1486
+ V (7 , 14 , 10 , 1504 ), " FEATURE_FAILURE_INTEL_11" );
1487
+ IMPLEMENT_INTEL_DRIVER_BLOCKLIST (
1488
+ OperatingSystem::WindowsVista, DeviceFamily::IntelGMA3150,
1489
+ V (7 , 14 , 10 , 1910 ), " FEATURE_FAILURE_INTEL_12" );
1490
+ IMPLEMENT_INTEL_DRIVER_BLOCKLIST (
1491
+ OperatingSystem::WindowsVista, DeviceFamily::IntelGMAX3000,
1492
+ V (7 , 15 , 10 , 1666 ), " FEATURE_FAILURE_INTEL_13" );
1493
+ IMPLEMENT_INTEL_DRIVER_BLOCKLIST (
1494
+ OperatingSystem::WindowsVista, DeviceFamily::IntelGMAX4500HD,
1495
+ V (7 , 15 , 10 , 1666 ), " FEATURE_FAILURE_INTEL_14" );
1496
+ IMPLEMENT_INTEL_DRIVER_BLOCKLIST (
1497
+ OperatingSystem::WindowsVista, DeviceFamily::IntelHDGraphicsToSandyBridge,
1498
+ V (7 , 15 , 10 , 1666 ), " FEATURE_FAILURE_INTEL_15" );
1499
+
1394
1500
IMPLEMENT_INTEL_DRIVER_BLOCKLIST (
1395
1501
OperatingSystem::Windows7, DeviceFamily::IntelGMA500, V (5 , 0 , 0 , 2026 ),
1396
1502
" FEATURE_FAILURE_INTEL_16" );
@@ -2002,6 +2108,23 @@ nsresult GfxInfo::GetFeatureStatusImpl(
2002
2108
}
2003
2109
}
2004
2110
2111
+ /* // special-case the WinXP test slaves: they have out-of-date drivers, but we still want to
2112
+ // whitelist them, actually we do know that this combination of device and driver version
2113
+ // works well.
2114
+ if (mWindowsVersion == kWindowsXP &&
2115
+ adapterVendorID.Equals(GfxDriverInfo::GetDeviceVendor(VendorNVIDIA), nsCaseInsensitiveStringComparator()) &&
2116
+ adapterDeviceID.LowerCaseEqualsLiteral("0x0861") && // GeForce 9400
2117
+ driverVersion == V(6,14,11,7756))
2118
+ {
2119
+ *aStatus = FEATURE_STATUS_OK;
2120
+ return NS_OK;
2121
+ }
2122
+ */
2123
+ // Windows Server 2003 should be just like Windows XP for present purpose, but still has a different version number.
2124
+ // OTOH Windows Server 2008 R1 and R2 already have the same version numbers as Vista and Seven respectively
2125
+ if (os == OperatingSystem::WindowsServer2003)
2126
+ os = OperatingSystem::WindowsXP;
2127
+
2005
2128
return GfxInfoBase::GetFeatureStatusImpl (
2006
2129
aFeature, aStatus, aSuggestedDriverVersion, aDriverInfo, aFailureId, &os);
2007
2130
}
0 commit comments