How to Enable WebGL for Blocked Graphics Cards in Firefox
WebGL is amazing. Take a look at X-Wing or First-Person Tetris in Firefox. What do you mean it’s not working?
My laptop’s two years old but, despite having a reasonable dedicated graphics card, WebGL is disabled in Firefox. Mozilla blacklist specific GPUs based on the driver version number, i.e.
- NVIDIA cards require a driver numbered 22.214.171.12421 or greater
- AMD/ATI cards are 8.741.0.0 or greater
- Intel cards normally require 6.14.11 on XP, 7.15.10 on Vista or 8.15.10 on 7 (although some products are completely blocked)
- Macs require OS version 10.6 or newer
In general, blacklisting is a good thing. You don’t want WebGL crashing the browser because your card doesn’t support the right number of Z/Stencil ROP Units, 128-bit floating point HDR, anisotropic texture filtering or some other bizarre feature no one understands.
Unfortunately, hardware vendors stop producing drivers for legacy products (anything released before last Tuesday). In some cases, your PC vendor will insist on releasing their own modified driver updates and there’s no guarantee they’ll do that. Your graphics card may be WebGL-compatible, but it’ll be blocked in Firefox if the driver version is 0.0.0.1 behind the approved list. Type “about:support” in the address bar and scroll down to the “Graphics” section at the bottom to discover whether your card is suitable.
And all you Chrome users can stop giggling — Google is adopting GPU blacklists in their browser shortly.
Big Red Warning
We’re about to bypass Firefox’s GPU blacklist. It’s a dumb thing to do and involves tinkering with dangerous configuration settings. Do this at your own risk: I can’t accept responsibility for any catastrophic PC failures, migraines, plagues, explosions or spontaneous human combustion caused by these changes … But it’s worth the risk to play X-Wing!
Here Be Dragons
Type about:config in Firefox’s address bar and make the following changes:
- To enable WebGL, set webgl.force-enabled to true.
- To enable Layers Acceleration, set layers.acceleration.force-enabled to true
- To enable Direct2D in Windows Vista/7, set gfx.direct2d.force-enabled to true
Now, cross your fingers, restart Firefox and try running a WebGL application. It’s probably best to undo those changes if smoke starts pouring from your PC.