Chrome WebGL software fallback not being used on Windows [cross-post from SO & chromium group]

541 views
Skip to first unread message

dan-man

unread,
May 9, 2017, 9:49:22 AM5/9/17
to swiftshader

Originally posted here and here.

I was under the impression that WebGL should work on Chrome on pretty much any desktop device, but that it may fall back to software rendering in some cases (assuming you don't pass failIfMajorPerformanceCaveat=true when getting the context). However in practice this seems not to be true for a substantial number of users on both Macs and Windows (especially, but not limited to, those within some kind of managed corporate IT system).

As far as I can tell, on all hardware/setups where WebGL is disabled in Chrome, it is possible to run it using a different browser (FF, and even IE11). I believe that IE11 only uses software and FF may be less strict with its blacklisting of GPUs, but that doesn't explain why Chrome can't switch to software when hardware is unavailable. Indeed, in some cases, overriding the GPU blacklist in Chrome does seem to work (but presumably is not a good idea).

So firstly, could I check that my assessment of the situation is correct? And secondly, could anyone suggest how to force software rendering (i.e. flags etc.) and/or point me at an issue discussing this?

Any advice would be very much appreciated - even if the process is rather involved it is still worth knowing about as it may be workable for our clients.

update:

@gman (on SO) points out that there is no software emulation on Macs in Chrome, but that still leaves the question of what's going on in windows.

Nicolas Capens

unread,
May 9, 2017, 10:35:24 AM5/9/17
to dan-man, swiftshader
Hi Dan,

I'm happy to let you know that with the upcoming M59 release of Chrome, we have integrated SwiftShader to provide seamless fallback support for WebGL in case the GPU is blacklisted.

We were previously only using SwiftShader as a separately downloaded component, which indeed does not work on managed corporate systems, and required a browser restart. Integrating SwiftShader was only possible after open-sourcing it and substantially reducing its binary size.

You can test it today on Windows using Chrome Canary or the Beta channel, and specifying the --disable-gpu launch flag. Linux is also supposed to work but the libraries were mistakenly not shipped as part of the beta package, which we hope will be rectified in the next update and before it reaches the Stable channel. We haven't started integrating Mac OS X support yet, because Chrome works significantly differently there, but it's on our radar.

Let us know if you encounter any unexpected issues!

Cheers,
Nicolas

--
You received this message because you are subscribed to the Google Groups "swiftshader" group.
To unsubscribe from this group and stop receiving emails from it, send an email to swiftshader+unsubscribe@googlegroups.com.
To post to this group, send email to swift...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/swiftshader/d029a08e-dbd0-4ef2-8f8f-9ed126d7d43f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

cheng...@126.com

unread,
Jun 5, 2017, 9:13:49 AM6/5/17
to swiftshader
Good news!
But when android platform will be supported?


在 2017年5月9日星期二 UTC+8下午10:35:24,Nicolas Capens写道:
Hi Dan,

I'm happy to let you know that with the upcoming M59 release of Chrome, we have integrated SwiftShader to provide seamless fallback support for WebGL in case the GPU is blacklisted.

We were previously only using SwiftShader as a separately downloaded component, which indeed does not work on managed corporate systems, and required a browser restart. Integrating SwiftShader was only possible after open-sourcing it and substantially reducing its binary size.

You can test it today on Windows using Chrome Canary or the Beta channel, and specifying the --disable-gpu launch flag. Linux is also supposed to work but the libraries were mistakenly not shipped as part of the beta package, which we hope will be rectified in the next update and before it reaches the Stable channel. We haven't started integrating Mac OS X support yet, because Chrome works significantly differently there, but it's on our radar.

Let us know if you encounter any unexpected issues!

Cheers,
Nicolas
On Tue, May 9, 2017 at 9:49 AM, dan-man <the1m...@gmail.com> wrote:

Originally posted here and here.

I was under the impression that WebGL should work on Chrome on pretty much any desktop device, but that it may fall back to software rendering in some cases (assuming you don't pass failIfMajorPerformanceCaveat=true when getting the context). However in practice this seems not to be true for a substantial number of users on both Macs and Windows (especially, but not limited to, those within some kind of managed corporate IT system).

As far as I can tell, on all hardware/setups where WebGL is disabled in Chrome, it is possible to run it using a different browser (FF, and even IE11). I believe that IE11 only uses software and FF may be less strict with its blacklisting of GPUs, but that doesn't explain why Chrome can't switch to software when hardware is unavailable. Indeed, in some cases, overriding the GPU blacklist in Chrome does seem to work (but presumably is not a good idea).

So firstly, could I check that my assessment of the situation is correct? And secondly, could anyone suggest how to force software rendering (i.e. flags etc.) and/or point me at an issue discussing this?

Any advice would be very much appreciated - even if the process is rather involved it is still worth knowing about as it may be workable for our clients.

update:

@gman (on SO) points out that there is no software emulation on Macs in Chrome, but that still leaves the question of what's going on in windows.

--
You received this message because you are subscribed to the Google Groups "swiftshader" group.
To unsubscribe from this group and stop receiving emails from it, send an email to swiftshader...@googlegroups.com.

Nicolas Capens

unread,
Jun 5, 2017, 4:02:05 PM6/5/17
to cheng...@126.com, swiftshader
On Mon, Jun 5, 2017 at 9:13 AM, <cheng...@126.com> wrote:
Good news!
But when android platform will be supported?

We currently don't have any plans for using SwiftShader on Android for WebGL fallback support. Practically all devices support OpenGL ES 2.0, so they should also be capable of supporting WebGL, except for those blacklisted due to severe driver issues. Are you experiencing issues with a specific device, for which a Chromium bug hasn't already been opened?
 
To unsubscribe from this group and stop receiving emails from it, send an email to swiftshader+unsubscribe@googlegroups.com.

To post to this group, send email to swift...@googlegroups.com.

cheng...@126.com

unread,
Jun 5, 2017, 11:02:39 PM6/5/17
to swiftshader
Thank you for your reply!
I find some specific devices that can't support OpenGL ES 2.0, but my business need to use WebGL, so i need to do something special for this specific devices.


在 2017年6月6日星期二 UTC+8上午4:02:05,Nicolas Capens写道:

Nicolas Capens

unread,
Jun 6, 2017, 9:59:11 AM6/6/17
to cheng...@126.com, swiftshader
Please file bugs on the Chromium Issue Tracker with details about these devices, to investigate this further (make sure to add Internals>GPU>WebGL to the bug's Components, and tick the Android box). Thanks.

To unsubscribe from this group and stop receiving emails from it, send an email to swiftshader+unsubscribe@googlegroups.com.

To post to this group, send email to swift...@googlegroups.com.

cheng...@126.com

unread,
Jun 6, 2017, 10:44:28 PM6/6/17
to swiftshader
Thank you!


I find chrome has a gpu blacklist in GpuDataManagerImplPrivate::Initialize, so in all ths devices, chrome can't support WebGL


在 2017年6月6日星期二 UTC+8下午9:59:11,Nicolas Capens写道:
Reply all
Reply to author
Forward
0 new messages