[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Public WebGL] blacklisting NVIDIA proprietary Linux drivers older than 295.* in chrome

Hmm. Well I suppose then that we either accept that a large number of machines will not be able to view WebGL content, or we find a way to make the driver upgrade semi-automatic. Of course the problem then is accusations that, "Firefox broke my laptop!", if an upgrade goes wrong :)


On Jul 31, 2012 8:21 PM, "Benoit Jacob" <bjacob@mozilla.com> wrote:

Well, my experiene in doing a few tests and polling a few non-technical people is that unless the instructions for how to fix the problem are specific, people get confused and give up.

Most non-technical people will not even read any instructions even if they are entirely specific. So any measure we take here will only impact a minory of tech-savvy users, defined as "people who have already installed/upgraded a graphics driver once in their life". We can adjust communication accordingly.

The worst example was on a one year old windows laptop with an Nvidia GPU that was working fine in the latest stable build of Chrome, but refused to work in the latest Firefox, the (hidden) reason being that Firefox deemed their drivers to be too old.

Indeed, Firefox requires the 257.21 driver from May 2010. As OEMs are entirely careless about shipping up-to-date drivers, many machines shipped with older drivers well into 2011.

I would guess that a lot of laptops would match this profile. And that this problem will severely limit the potential reach of WebGL (and therefore uptake by developers).

Only about 40% of people who try to see WebGL context in Firefox, get to see it. The overwhelming majority of the remaining 60% have capable hardware but blacklisted drivers.

This seems to be a universal problem that could be solved at its source by the browsers directing people to visit the driver download page for their GPU when a problem is detected.

Again, most people wouldn't even read these instructions, so this wouldn't affect the overall figures significantly (the above-mentioned 40%). But we can do more to help that segment of users who are just technical enough to upgrade their drivers given a suitable message.

That way nothing is exposed to _javascript_. The alternative is that it's the responsibility of the JS app to solve the problem, which will lead to varying qualities of result. That sounds messy.

Having no good solution for this problem seems quite a poor outcome.

For Linux, I'm sure the community could provide a page to help users to upgrade. The browsers would just need to redirect to that.

Linux is a non-issue as all recent Linux drivers are non-blacklisted, bugs are fixed quickly, and newer driver versions are rolled out quickly to users on most distros. At the moment, Linux is the platform with the highest WebGL success rate in Firefox (about 75%) and fastest increase rate, so we'll be above 90% soon.


Anyway, whatever the outcome, I think having some way of helping non-technical users to easily get WebGL working will be key to its success.


On Jul 31, 2012 6:34 PM, "Benoit Jacob" <bjacob@mozilla.com> wrote:

On Wed, Aug 1, 2012 at 1:40 AM, spam spam <spam@anderberg.co.uk> wrote:
Sorry to revive this thread after a week, but I  had a thought. If Chrome could expose
the text that we see in the about:gpu GPU page when WebGL isn't supported
(e.g. Nvidia drivers < 295.* are buggy) to _javascript_, then websites could deliver
this useful message to their users and direct them to the right page to solve their

The community could even set up a really easy guide to help people upgrade.
Without that text, we're stuck with directing users to a generic upgrade page.

This would also be really useful under Windows.

This has been discussed extensively and was ultimately rejected by the vendors because it would expose more unique bits of the user agent to the public, making it easier to uniquely identify users without their consent (supercookies).
That's not what I remember. The spec actually has a provision for that, see the webglcontextcreationerror event. I am not aware of any browser engine implementing it, but as far as I'm concerned, that's more laziness / lack of prioritization than a stance against it.

I don't see why webglcontextcreationerror would have to give away any information. It can simply give a link to a browser-specific wiki page where instructions can be found; going slightly further it can give GPU-vendor-specific info about where to find drivers, which is like 2 bits of info that can probably be obtained anyways by analyzing some rendering; so it doesn't have to be a privacy issue and each browser vendor is free to decide where to draw the line.

I am personally not swayed by this argument because whoever does want to have supercookies can already have them (see  https://panopticlick.eff.org/ which gave my browser a unique fingerprint among more than 2 million users).
That's wildly unrepresentative; either you are using a nightly/canary browser where the build day is part of the UA string so that extremely few users have that exact UA, or you otherwise have uncommon plugins / screen resolution, etc.

It has, in these discussions, also been pointed out that if we could but know what GPU people where running, it would be very useful, as I recall, this was quite hotly debated. Alas, we are at it again I guess, for good reason, as predicted.
The webglcontextcreationerror event doesn't have to give that much information; see above.