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

RE: [Public WebGL] Can the browser tell the user why webGL has failed to start?

Andre, when running in IE or Edge, context creation should never fail unless you pass failIfMajorPerformanceCaveat as a context attribute and the browser intends to give you a software rendering context.  If you find that is not the case, let me know and I will get to the bottom of it.


From: owners-public_webgl@khronos.org [mailto:owners-public_webgl@khronos.org] On Behalf Of Ashley Gullen
Sent: Friday, September 18, 2015 6:48 AM
To: Kenneth Russell <kbr@google.com>
Cc: Vladimir Vukicevic <vladimir@mozilla.com>; Gilbert, Jeff <jgilbert@mozilla.com>; andre v <starplant@gmail.com>; public_webgl@khronos.org
Subject: Re: [Public WebGL] Can the browser tell the user why webGL has failed to start?


One extra tip is if you are passing failIfMajorPerformanceCaveat: true to the context attributes and you fail to get a context, but you can with it set to 'false', that indicates the WebGL context has a "major performance caveat", which can mean a software-rendered context or some other significant performance implication. The software-rendered context may be used instead of hardware due to GPU blacklisting, so it may be worth notifying the user of this case, even though you did get a WebGL context.






On 18 September 2015 at 09:18, Kenneth Russell <kbr@google.com> wrote:

Sorry I didn't realize this before, but the webglcontextcreationerror event already contains some of this information: https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.15.4 . The precision of the statusMessage in this event was improved somewhat recently in Chrome, and could probably be improved more without giving up personally identifiable information.


Andre, could you please describe some recent scenarios you've run into where WebGL failed to initialize?






On Thu, Sep 17, 2015 at 8:40 PM, Vladimir Vukicevic <vladimir@mozilla.com> wrote:

Actually, thinking about this.. we could include a context creation flag that would indicate to the UA that the page wants the user to be told if and why context creation failed. The browser would do it itself, so no information leakage, and the content has to opt-in, so content that has silent fallback can still work.


- Vlad

On Sep 17, 2015 7:27 PM, "Jeff Gilbert" <jgilbert@mozilla.com> wrote:

It's something we've talked about in the past. Sometimes, we decide a user's drivers aren't reliable enough to run on, and that they should update. However, there's not currently a way to surface this to the app, so the app can recommend updating drivers to the user.

It would also be fantastic from a statistics point of view, being able to get stats on why WebGL is failing to load for a more general audience.


On Thu, Sep 17, 2015 at 4:03 PM, Kenneth Russell <kbr@google.com> wrote:

In Chrome, the about:gpu page usually contains useful information about why WebGL would have failed to start.


We'd like to hear about situations where this happens, where it appears the user's graphics drivers are correctly installed.





On Thu, Sep 17, 2015 at 2:35 PM, andre v <starplant@gmail.com> wrote:

I am working on a webGL game, sometimes when I demo it on a user's computer the webGL does not work (fails to create context). It would be nice to know why. Is it incompatible graphics card? Black listed OS, drivers, bios? Is it disabled in the settings? Is it some sort of underlaying openGL error?


I realize that exposing this to me as a programming might be a bad idea, leaking information it shouldn't have... although I disagree... I understand the fear. But can't we display that to a user? So that they can trouble shoot their own issue? So that they don't blame me saying: "Shouldn't have used webGL, Unity is better", "Write a real game in C++", "Browser will never be a medium for real games"... Instead oh, my drivers are not up to date, oh my WaterFox has it disabled, webGL driver caused an error restart computer... At least some sort of debug flag that can help trouble shooting it during demos.


Automated way would be nice, but there is also no real manual way to trouble shoot it either. My checklist is:

1. WebGL failed to create context.

2. Restart computer. (clear any bad graphics hardware state)

3. Check for browser updates. 

4. Check for graphics chard drivers updates.

5. Disable extensions like Adblock, try incognito mode.


Thats it? Where would I check if the graphics card/os combo is black listed? Is there any debug flag that can tell me why webGL is failing?


- Andre von Houck