Bug 644787 - Disable D3D9 layers on NVIDIA 6100/6150/6200 series due to glitches whilst scrolling. See also: bug 612007 & bug 645872; r=bjacob a=LegNeato
authorEd Morley <bmo@edmorley.co.uk>
Mon, 11 Apr 2011 00:49:49 -0400
changeset 63400 66ccb8edc1cc314d2a37aef65a147f4717ecba87
parent 63399 be7d2d8c53e349e5970144fd55cb83e1b5e45eb9
child 63408 b16604b33f1ee6c4b0d2fb0f4631b60014069a58
push id54
push usereakhgari@mozilla.com
push dateMon, 11 Apr 2011 22:16:35 +0000
reviewersbjacob, LegNeato
bugs644787, 612007, 645872
milestone2.0.1pre
Bug 644787 - Disable D3D9 layers on NVIDIA 6100/6150/6200 series due to glitches whilst scrolling. See also: bug 612007 & bug 645872; r=bjacob a=LegNeato
widget/src/windows/GfxInfo.cpp
--- a/widget/src/windows/GfxInfo.cpp
+++ b/widget/src/windows/GfxInfo.cpp
@@ -614,20 +614,40 @@ static const PRUint32 deviceFamilyIntelG
     0x0116, /* IntelSandyBridge_4 */
     0x0122, /* IntelSandyBridge_5 */
     0x0126, /* IntelSandyBridge_6 */
     0x010A, /* IntelSandyBridge_7 */
     0x0080, /* IntelIvyBridge */
     0
 };
 
-// see bug 612007
-static const PRUint32 deviceFamilyNvidia6200TurboCache[] = {
-    0x0161, /* NV44 [GeForce 6200 TurboCache(TM)] */
+// Glitches whilst scrolling (see bugs 612007, 644787, 645872)
+static const PRUint32 deviceFamilyNvidiaBlockD3D9Layers[] = {
+    0x00f3, /* NV43 [GeForce 6200 (TM)] */
+    0x0146, /* NV43 [Geforce Go 6600TE/6200TE (TM)] */
+    0x014f, /* NV43 [GeForce 6200 (TM)] */
+    0x0161, /* NV44 [GeForce 6200 TurboCache (TM)] */
     0x0162, /* NV44 [GeForce 6200SE TurboCache (TM)] */
+    0x0163, /* NV44 [GeForce 6200 LE (TM)] */
+    0x0164, /* NV44 [GeForce Go 6200 (TM)] */
+    0x0167, /* NV43 [GeForce Go 6200/6400 (TM)] */
+    0x0168, /* NV43 [GeForce Go 6200/6400 (TM)] */
+    0x0169, /* NV44 [GeForce 6250 (TM)] */
+    0x0221, /* NV44A [GeForce 6200 (TM)] */
+    0x0222, /* NV44 [GeForce 6200 A-LE (TM)] */
+    0x0240, /* C51PV [GeForce 6150 (TM)] */
+    0x0241, /* C51 [GeForce 6150 LE (TM)] */
+    0x0242, /* C51G [GeForce 6100 (TM)] */
+    0x0244, /* C51 [Geforce Go 6150 (TM)] */
+    0x0245, /* C51 [Quadro NVS 210S/GeForce 6150LE (TM)] */
+    0x0247, /* C51 [GeForce Go 6100 (TM)] */
+    0x03d0, /* C61 [GeForce 6150SE nForce 430 (TM)] */
+    0x03d1, /* C61 [GeForce 6100 nForce 405 (TM)] */
+    0x03d2, /* C61 [GeForce 6100 nForce 400 (TM)] */
+    0x03d5, /* C61 [GeForce 6100 nForce 420 (TM)] */
     0
 };
 
 static const GfxDriverInfo gDriverInfo[] = {
   /*
    * Notice that the first match defines the result. So always implement special cases firsts and general case last.
    */
 
@@ -642,19 +662,21 @@ static const GfxDriverInfo gDriverInfo[]
     vendorNVIDIA, GfxDriverInfo::allDevices,
     GfxDriverInfo::allFeatures, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION,
     DRIVER_LESS_THAN, V(8,17,12,5721), "257.21" ),
   GfxDriverInfo( DRIVER_OS_WINDOWS_7,
     vendorNVIDIA, GfxDriverInfo::allDevices,
     GfxDriverInfo::allFeatures, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION,
     DRIVER_LESS_THAN, V(8,17,12,5721), "257.21" ),
 
-  // bug 612007: disable D3D9 layers on NVIDIA 6200 TurboCache series.
+  /* Disable D3D9 layers on NVIDIA 6100/6150/6200 series due to glitches
+   * whilst scrolling. See bugs: 612007, 644787 & 645872.
+   */
   GfxDriverInfo( DRIVER_OS_ALL,
-    vendorNVIDIA, (GfxDeviceFamily) deviceFamilyNvidia6200TurboCache,
+    vendorNVIDIA, (GfxDeviceFamily) deviceFamilyNvidiaBlockD3D9Layers,
     nsIGfxInfo::FEATURE_DIRECT3D_9_LAYERS, nsIGfxInfo::FEATURE_BLOCKED_DEVICE,
     DRIVER_LESS_THAN, allDriverVersions ),
 
   /*
    * AMD/ATI entries
    */
   GfxDriverInfo( DRIVER_OS_ALL,
     vendorATI, GfxDriverInfo::allDevices,