Created attachment 502504 [details] [diff] [review]
blacklist everything but NVIDIA in GLX
With GLX (aka OpenGL on linux and unix systems), many drivers are crashy to the point that just creating a GL context crashes. However, at least the NVIDIA proprietary driver is good and non-crashy.
This patch blacklists everything but the NVIDIA proprietary driver.
This really should go into beta9 because it fixes a severe post-beta8 regression on Linux. Post-beta8, a change in how we create GLX contexts (bug 613079) started triggering lots of GL driver crashes with GLX. Together with WebGL getting enabled by default, and many webpages creating WebGL contexts just to be cool (modernizr does), this means that lots of Linux users experienced crashes on many pages: bug 616416, Bug 622294, Bug 621699.
Meanwhile, I am also working in bug 616416 on changing the way we do GLX initialization to be less prone to triggering driver crashes. But that is taking more time and is a lower priority.
Note, you can bypass this by defining the MOZ_GLX_IGNORE_BLACKLIST environment variable.
Created attachment 502585 [details] [diff] [review]
This version is ready to land:
- cleanup suggested by vlad (smaller patch)
- changeset metadata
Since the tree is currently closed I can't push it myself.
Should this be backed out on trunk once the beta is built?
I have thought about this some more and this is entirely the wrong solution.
1. This is supposed to be blacklist and NOT a whitelist.
2. Adding a feature that only work using a proprietary driver is in direct opposition to the entire idea of Linux.
3. I have zero issues or crashes using the Xorg ATI drivers that are currently available under fedora 14, so I think this is just a people are using old kernel/driver issue.
If this is really such a huge crash issue then it should be turned off with a pref so that users who want to test can turn it on with a pref. The you can turn it on with an ENV variable does not work well for the case where Firefox is launched by clicking on a link form an external application.
Bill, can you open a new bug instead? Keeps things cleaner.
OK. For the record I guess this is OK if it is the best we can do for the beta. I just don't think it should remain on trunk.
Bill filed bug 624593.
Benoit, was there a reason to make this an env var and not a preference?
Only ease of implementation. The plan is to make it a preference, and to make it not GLX specific. I think we should have a global gfx.ignore-blacklist preference.