Blocklisting/Blocked Graphics Drivers: Difference between revisions
Line 45: | Line 45: | ||
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 8.17.12.5721 on Windows 7/Vista. | 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 8.17.12.5721 on Windows 7/Vista. | ||
On NVIDIA GeForce 6200 TurboCache cards, we block Direct3D 9 accelerated layers, see {{bug|612007}}. | 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. | On Optimus devices, ANGLE rendering for WebGL is blocked ({{bug|636870}}). So WebGL should still work, but will use the OpenGL driver. |
Revision as of 17:27, 11 April 2011
Downloaded blacklist
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 | >= 7.0.0.0 | Windows XP | Layers acceleration | Driver version does not match known NVIDIA drivers | bug 638936, bug 639698 |
Compiled-in blacklist
The compiled-in blacklist is implemented separately for each OS/platform (Windows, Mac, X11).
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 or newer (June 2010), 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 8.17.12.5721 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 ATI driver version 10.6 or newer (June 2010), 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 block the OpenGL drivers on ATI 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:
Windows version | GPU family | Required driver version |
---|---|---|
Windows XP | Intel GMA 500 | 6.14.11.1018 |
Windows XP | Intel GMA 900 | 6.14.10.4764 |
Windows XP | Intel GMA 950 | 6.14.10.4926 |
Windows XP | Intel GMA 3150 | 6.14.10.5260 |
Windows XP | Intel GMA X3000 | 6.14.10.5218 |
Windows XP | Intel GMA X4500/HD | 6.14.10.5284 |
Windows Vista | Intel GMA 500 | 7.14.10.1006 |
Windows Vista | Intel GMA 900 | All versions are blocked |
Windows Vista | Intel GMA 950 | 7.14.10.1504 |
Windows Vista | Intel GMA 3150 | 7.14.10.2124 |
Windows Vista | Intel GMA X3000 | 7.15.10.1666 |
Windows Vista | Intel GMA X4500/HD | 8.15.10.2202 |
Windows 7 | Intel GMA 500 | 5.0.0.2026 |
Windows 7 | Intel GMA 900 | All versions are blocked |
Windows 7 | Intel GMA 950 | 8.15.10.1930 |
Windows 7 | Intel GMA 3150 | 8.14.10.2117 |
Windows 7 | Intel GMA X3000 | 8.15.10.1930 |
Windows 7 | Intel GMA X4500/HD | 8.15.10.2202 |
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.
Moreover, on certain GPUs in the GMA X3000 generation (G35, GL960, GM965), we block Direct2D. See bug 595364. We might however remove this bit as it seems to possibly be just a special case of bug 590373.
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.
On X11
XRender is used via Cairo, and is not subject to any blacklisting.
Regarding OpenGL drivers, only the NVIDIA proprietary driver is currently whitelisted because of many crashes in other drivers (see bug 616416, bug 622294, bug 621699, bug 589546), and difficulty determining driver info without risking crashing (see this conversation). Define the MOZ_GLX_IGNORE_BLACKLIST environment variable to bypass that.
WebGL is enabled by default, so it works if your driver is whitelisted or if you bypass the blocking (see above).
Layers acceleration is not yet enabled by default because it's not entirely ready (need to fix some reftest failures and use texture-from-pixmap); however it's known to give good results with the NVIDIA driver. You can enable it by setting layers.acceleration.force-enabled=true in about:config. You can again bypass the blocking of your driver using the same MOZ_GLX_IGNORE_BLACKLIST environment variable.
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 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 X11 platforms (like Linux), the driver blacklist is implemented differently and bypassing it requires you to also define the MOZ_GLX_IGNORE_BLACKLIST environment variable. You can run Firefox using this command line:
MOZ_GLX_IGNORE_BLACKLIST=1 firefox
On Windows, you can also spoof your graphics system information to help debug driver blacklisting issues: see bug 604771.
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.