Blocklisting/Blocked Graphics Drivers

From MozillaWiki
Jump to: navigation, search

Downloaded blacklist

To request a block, file a bug using the appropriate request form and filling in all requested details:

On desktop

This is a list of all the GPU/driver/OS combinations that we have blocked using the downloaded Video card blacklisting feature of Firefox 4.

GPU Driver OS Features Reason Bug
NVIDIA NVS 3100M <= 258.96 Windows 7 Layers acceleration and Direct2D Driver crashes multiple times per day bug 635044
All NVIDIA hardware >= Windows XP Layers acceleration Driver version does not match known NVIDIA drivers bug 638936, bug 639698
All AMD/ATI hardware 8.982.0.0 Windows Layers acceleration and Direct2D Firefox crashes multiple times per day bug 792480, bug 793869
All NVIDIA&Intel hardware All >= Mac OS X 10.6 WebGL anti-aliasing Security issues bug 809550
AMD Radeon HD 6290/6300/6310/6320 All Windows 7 Layers acceleration and Direct2D Firefox crashes multiple times per day bug 840161

On Android

This is a list of all the Hardware/OS combinations that we have blocked using the downloaded StageFright decoding blacklisting feature introduced in Firefox 17 for Android.

Hardware OS Feature Reason Bug

Compiled-in blacklist

The compiled-in blacklist is implemented separately for each OS/platform (Windows, Mac, X11). This list is presented for historical reasons, and is not currently up to date.

On Windows

All vendors other than AMD/ATI, NVIDIA, Intel are blocked (bug 623338). This was required primarily by various crashes on virtual machines with unusual vendor names (bug 621411). We're open to whitelisting more vendors if needed.

Windows 2003 is identified as Windows XP for the present purposes.

Layers acceleration is blocked on Windows versions older than Windows XP.

NVIDIA cards

We require NVIDIA driver version 257.21 (June 2010) or newer, see bug 623338. Notice that 257.21 is the commercial version number. This corresponds to the last 5 digits in the technical version number, which for instance is on Windows 7/Vista.

On NVIDIA GeForce 6100/6150/6200 TurboCache cards, we block Direct3D 9 accelerated layers, see bug 612007, bug 644787, bug 645872.

On Optimus devices, ANGLE rendering for WebGL is blocked (bug 636870). So WebGL should still work, but will use the OpenGL driver.

AMD/ATI cards

We require AMD driver version 10.6 (June 2010) or newer on Windows up to 7, see bug 623338. Notice that 10.6 is the commercial version number. The actual check is performed on the technical version number, and we require it to be at least 8.741.0.0.

We require AMD driver version greater than 12.11 beta (November 2012) on Windows 8, see bug 806991. Notice that 12.11 beta is the commercial version number. The actual check is performed on the technical version number, and we require it to be strictly higher than

We block the OpenGL drivers on AMD cards on Windows, see bug 619773. This does not affect default functionality, as we use ANGLE instead of OpenGL by default for WebGL rendering anyway.

Intel cards

We require the following Intel driver versions, or newer (September 2010), see bug 594877.

  • You can determine the driver version by entering about:support in the Firefox location bar; look under the Graphics section.
  • The "GPU family" below doesn't necessarily match the "Adapter Description" in about:support. Indeed, Intel has multiple, overlapping product numbering schemes. For example, the "965 chipset family" encompasses the Q965 which is a GMA 3150 chip, and the G965 which is a GMA X3000 chip. Details of your Intel graphics chip are available from the Adapter tab of the Display Settings dialog in Windows. For example, in Windows Vista, one way to get to this in Windows Vista is right-click the desktop, choose Personalize > Display Settings > Display Settings > Monitor > Advanced Settings... > Adapter, and look for the Adapter String under Adapter Information.
  • Intel GPUs have been grouped by families in the table below. For example, by "GMA X3000" we mean all Intel GMA X3000, X3100, X3500 products.
Windows version GPU family Required driver version
Windows XP Intel GMA 500
Windows XP Intel GMA 900
Windows XP Intel GMA 950
Windows XP Intel GMA 3150
Windows XP Intel GMA X3000
Windows XP Intel GMA X4500/HD
Windows Vista Intel GMA 500
Windows Vista Intel GMA 900 All versions are blocked
Windows Vista Intel GMA 950
Windows Vista Intel GMA 3150
Windows Vista Intel GMA X3000
Windows Vista Intel GMA X4500/HD
Windows 7 Intel GMA 500
Windows 7 Intel GMA 900 All versions are blocked
Windows 7 Intel GMA 950
Windows 7 Intel GMA 3150
Windows 7 Intel GMA X3000
Windows 7 Intel HD Graphics Ironlake up to Firefox 19
> in Firefox 20 and above (see bug 843273)
Windows 7 Intel GMA X4500 and other HD Graphics
Windows 8 Intel HD Graphics Ironlake > in Firefox 23 and above (see bug 804144)

We block Direct3D 10 features (including Direct2D) on buggy installations where the Intel driver version reported in the Windows Registry is not equal to the version of the driver DLL, igd10umd32.dll/igd10umd64.dll. See bug 590373.

Up to and including Firefox 6, on certain GPUs in the GMA X3000 generation (G35, GL960, GM965), we block Direct2D. See bug 595364. In Firefox 7 and newer, Direct2D is no longer blacklisted on these GPUs.

We block the OpenGL drivers on Intel cards on Windows, see bug 625118. This does not affect default functionality, as we use ANGLE instead of OpenGL by default for WebGL rendering anyway.

Dual-GPU systems

Our current blacklisting implementation does not properly support dual-GPU systems (bug 628129).

On Mac

For WebGL, we require Mac OS version 10.6 or newer. See bug 636611

For layers acceleration, we require Mac OS version 10.6.3 or newer. See bug 629016. One exception is <video> acceleration, which is enabled on all Mac OS versions.

For layers acceleration, we also block all old graphics adapters that do not fully support OpenGL 2.1 in hardware (use slow software fallbacks), or that can't render to non-power-of-two texture-backed framebuffers. That includes the following generations of GPUs: ATI Radeon X1000 and older, NVIDIA Geforce FX and older, and Intel GMA 950 and older.

For MSAA, we block all ATI cards except for AMD Radeon HD 6490M (device id 0x6760) and ATI Radeon HD 4670 (device id 0x9488). See Chromium issue 83153 [1].

On X11

XRender is used via Cairo, and is not subject to any blacklisting.

WebGL is enabled by default, so it works if your OpenGL driver is whitelisted or if you bypass the blocking (see below).

GL layers acceleration is not yet enabled by default (see bug 594876). You can enable it by setting layers.acceleration.force-enabled=true in about:config.

The following drivers are whitelisted:

  • Mesa drivers are whitelisted if the Mesa version is at least 7.10.3 (see bug 659560).
    • Exception: with the Nouveau 3D driver, the Mesa version is required to be at least 8.0 (see bug 729817)
  • For the NVIDIA driver, versions 257.21 and newer are whitelisted, exactly like on Windows (see above).
  • For the FGLRX (proprietary ATI) driver, we whitelist the newer versions that implement OpenGL 3.0 or newer. Indeed, FGLRX does not return any version number of its own, so we had to use the OpenGL version as a differentiator.
    • FGLRX is blacklisted when the Linux kernel version is 2.6.32.

On Android

WebGL is disabled for Adreno 200/205 GPUs (see bug 736123).

StageFright software decoding (see bug 759945) and/or hardware decoding (see bug 782508) are enabled depending on the Android version, Firefox version and device capability:

Android version Device First version Bug
2.2 LG devices Firefox 21 bug 823253
2.3 HTC and Samsung devices Firefox 21 bug 823253
3.x Samsung devices Firefox 21 bug 823253
4.0 Samsung devices and Galaxy Nexus Firefox 17 bug 806369
4.0 Sony Xperia Ion (LT28h) Firefox 22 bug 845639
4.1, 4.2, 4.3 Any devices Firefox 17 bug 806369

The following devices or hardware are blocked for StageFright decoding even if they are in the table above:

Android version Device Hardware First version Reason Bug
All - antares, endeavoru, harmony, picasso, picasso_e, ventana, rk30board Firefox 21 Crashes bug 862523, bug 863843
2.3 Samsung GT-I8160, GT-I8160L, GT-I8530, GT-I9070, GT-I9070P, GT-I8160P, GT-S7500, GT-S7500T, GT-S7500L, GT-S6500T - Firefox 21 Crashes bug 847837
2.3 - smdkc110, smdkc210, herring, shw-m110s, shw-m180s, n1, latona, aalto, atlas, qcom Firefox 21 Crashes bug 864734
2.3 Samsung SGH-T989 - Firefox 23 Crashes bug 818363
4.0 Samsung SGH-I717, SGH-I727, SGH-I757, SGH-T989 - Firefox 21 Crashes bug 845729
4.1 Samsung GT-P3100, GT-P3110, GT-P3113, GT-P5100, GT-P5110, GT-P5113 - Firefox 22 Crashes bug 853522
4.1 Motorola XT890 - Firefox 24 Crashes bug 882342
4.1 Sony devices - Firefox 21 Crashes bug 845734
4.1 Sony Ericsson devices - Firefox 22 Crashes bug 879172
4.2 Sony Ericsson devices - Firefox 23 Crashes bug 889433

How to force-enable blocked graphics features

If you would like to forcibly enable a graphics feature that is blocked on your system, follow these instructions. Warning: do this at your own risk. There usually are good reasons why features are blocked.

To force-enable WebGL, go to about:config and set webgl.force-enabled=true.

To force-enable WebGL anti-aliasing, go to about:config and set webgl.msaa-force=true.

To force-enable Layers Acceleration, go to about:config and set layers.acceleration.force-enabled=true.

On Windows Vista and Windows 7, to force-enable Direct2D Content Acceleration, go to about:config and set gfx.direct2d.force-enabled=true.

On Android, to force-enable StageFright software decoding, go to about:config and set stagefright.force-enabled=true.

On Windows, you can also spoof your graphics system information to help debug driver blacklisting issues (see bug 604771):

  1. Create spoofed-firefox.bat in the installation folder (e.g. C:\Program Files (x86)\Mozilla Firefox)
  2. Set the new values of spoofed variables ending with a command to launch Firefox:
    "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" -p -no-remote
  3. Double-click spoofed-firefox.bat and create a profile if required
  4. Click the Firefox button, then select Help, finally Troubleshooting Information and check the Graphics section.

If force-enabling a feature doesn't work, that probably means that your hardware doesn't support it. For example, layers acceleration currently requires support for 4Kx4K textures, which rules out some graphics cards, like the Intel G31/G33.