Thursday, June 14, 2012

Firefox: WebGL Not Functional: Blocked for your graphics card because of unresolved driver issues

Symptom:


WebGL does not render at all on some graphics cards on the latest/later Firefox browser for Microsoft Windows for example Firefox 12. If you look at the Help->Troubleshooting page (or simply type in about:support in the URL) on Firefox, you see

WebGL Renderer Blocked for your graphics card because of unresolved driver issues.


By now, you probably figured you need the graphics driver installed (which is the first thing you should try), but still to no avail.

But if you use Google Chrome, WebGL probably works fine. The good way to test this is to go to the Chrome Experiments web site. For example, http://www.chromeexperiments.com/detail/webgl-aquarium/?f=webgl

Root Cause:


There is a fairly limited set of conditions in which WebGL is activated with the Google ANGLE WebGL rendering engine which Firefox for Windows uses. Rather than crashing the browser when WebGL functionality is dicey, Firefox has a Driver Blacklist and it is very likely that your graphics card and/or the driver version has been blacklisted.

Some graphics cards are simply not supported yet as they cause crash, which leads to poor user experience and developers do not want that to happen for regular users. Also since anything outside of NVIDIA and ATI will not be supported, unfortunately.

If you are using Remote Desktop, then the WebGL driver will be automatically disabled.

In addition to the model of the graphics card, if your laptop contains NVIDIA Optimus Technology, which allows you to use both GPU and the integrated (e.g., Intel HD 3000) graphics on laptops, then it is also subject to be blacklisted by Firefox, even if the base desktop model of the GPU works OK with Firefox. This was my situation.

Fix:


  • If you do not have NVIDIA or ATI graphics card, all bets are off. If it is a desktop, you could swap the card with at least some mid range "gaming" class graphics cards.
  • You cannot use Remote Desktop or most other ways to delegate the graphics driver such as virtual machines. Walk over to your computer and use its own display.
  • If you have a laptop computer with Intel Graphics integrated then turn off your GPU. I have the Intel HD 3000 graphics on my laptop and actually the built-in GPU works fairly well on Firefox. I get about 40 FPS with the HD 3000 and 60 FPS with the GPU on.
  • If you have read above mentioned black list article on the Firefox Wiki, it explains the way to force-enable WebGL. This, however, will be a very risky proposition and may render your Firefox  unusable. So if you don't want to risk this much and Chrome is working for you I would suggest you stick with Chrome for WebGL. These days, it is always good to get used to more than one browsers. Note that Internet Explorer and Apple Safari do not directly (out of the box) support WebGL.


1 comment:

Anonymous said...

Good info. Just started playing with WebGL and didn't understand why my nvidia graphics was being blocked, but now I know it's because of Optimus.