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

Re: [Public WebGL] Blacklisted driver notification

It seems to me that thing you desire is not whether they are using software per-se, but whether there is any actionable item the end user can perform to improve the performance.

Consider for instance the user having a nice USB-to-DVI converter plugged in and active to get a second monitor. That will cause perf to tank, too. You'll get bad microbenchmarks and we might even fall back to software rendering.

- Nat

On Mon, Mar 5, 2012 at 5:50 PM, Ashley Gullen <ashley@scirra.com> wrote:
Firefox and Chrome implement driver blacklists for WebGL to prevent buggy drivers crashing the user's computer.  I've read this is almost exclusively due to the drivers being out of date, so the user updating their drivers ought to fix the problem.  More recently, I've read about Google and Mozilla making moves to add software-rendered WebGL implementations so users who have blacklisted drivers can still see content.

For real-time games, software renderers really don't make for a good playing experience on the common mid to low end machine.  Poor performance is one of the most common criticisms we've heard with our HTML5 game engine, and it only comes from users who get software rendering.  Some combinations of game and machine result in unplayable performance.  Often if we get the user to update their driver then the GPU gets used and the game runs excellently.  It's frustrating that the player may have a bad experience when they actually have the necessary hardware to run the game really well, but just lack a decent up-to-date driver.

While software rendering is one way to solve the problem, it seems to me that it's worth trying to solve it by getting users to update their drivers.  This is more complicated for the user, but has a better end result.  Browsers could prompt users to upgrade their driver when it's blacklisted, but it may be unnecessary depending on the content.  There's no good way for the content itself to detect software rendering (and apparently the term is vague, since some GPUs use part software processing).  However, if the fact that the user's graphics driver is on the browser's blacklist is exposed to the content (a simple flag), the content itself can issue some kind of notification if appropriate.  This does not involve exposing any hardware details, does not need to determine a definition for software rendering, does not require running performance tests to try to detect software rendering, and could result in a much better end-user experience since they end up using the GPU they paid for.

Is this something that might be suitable for the WebGL spec?

Ashley Gullen