Last week we reported on Mozilla Firefox developers having issues with Linux GPU drivers
to the point that the Firefox 4.0 Linux build will not have GPU acceleration enabled by default, but it can be found for Mac OS X and Windows users. Fortunately, to fix the situation, there's now some open-source Mesa/X developers looking into these problems of Firefox GPU acceleration.
Mozilla's Benoit Jacob wrote to the Mesa mailing list
about the WebGL conformance tests to fix bugs in Mesa's OpenGL implementation. "The goal of this email is to discuss steps towards whitelisting Xorg OpenGL drivers for WebGL rendering, and more generally for all OpenGL-based features, in Firefox. Although I'm only directly concerned with Firefox, this really applies equally well to all browsers implementing WebGL."
Benoit notes that the only Linux graphics driver currently white-listed for support is NVIDIA's binary blob while the open-source drivers and even AMD's Catalyst Linux driver are black-listed from support due to bugs. (Note to those interested in wanting to try their black-listed drivers with Firefox 4.0, there's the MOZ_GLX_IGNORE_BLACKLIST
environmental variable to bypass the support checks.)
In response to this message, David Airlie already responded
. "Results: (5231 of 5344 passed, 3 timed out) This was with the latest Intel mesa driver on an Ironlake laptop. However I got a random crash on a previous run, I'm guessing if we can figure out the misc crasher we'd be in a lot better place."
Corbin Simpson, the student developer mostly known for his work on the ATI Gallium3D driver, has also been investigating the WebGL Firefox issues with the drivers more thoroughly. Here's what he said
I already started working on this. (A friend just got hired by Moz and I owe him one.)
Basic analysis: The crash is in the Mesa-side DRI2 handler for flushing the frontbuffer. There's a segfault of very weird composition. The BT (which I can get if needed) goes back to glXMakeCurrent, and it looks like glXMakeCurrent is unbinding the current context, which is calling the DRI2 unbind callbacks, which calls frontbuffer flush, but part of the DRI2 context is screwy and we get a segfault.
There's a couple problems though. The frontbuffer flush usually isn't fatal; it only kills us about one in five times. Sometimes it dies on the very first test, sometimes it dies halfway through the suite. There's no rhyme or reason to it.
Ideally these open-source developers will be able to get the WebGL issues on Mesa straightened out quickly. However, it already would be too late to get them fixed and then white-listed for Firefox 4.0. Mesa 7.10.1 / Mesa 7.11 will likely not be out for a couple of months and if these next releases do carry the WebGL fixes, for most users it's then a matter of waiting for the distribution vendors to pick-up the new packages. Maybe in time for Mozilla Firefox 4.1 these Linux GPU acceleration issues will be sorted out.