[Public WebGL] dual GPU setups default to integrated GPU

Florian Bösch [email protected]
Tue Jan 24 01:24:05 PST 2017

Dual GPU laptops such as some brands of windows and macOS laptops, the OS
has a GPU switching function that switches to the discrete GPU in graphics
intensive applications (such as games, cad software etc.)

However, when a browser is running, it is often the case that the
integrated GPU is used, regardless of if a tab is doing something graphics
intensive with WebGL or not (

On windows a user can influence this by a series of complicated steps to
designate the preferred GPU, but it is a machine wide-setting, and
sometimes it was ignored (I don't know if that's still the case).

Obviously this presents a problem for WebGL developers. Neither would we
want to leech a users batteries unnecessarily, nor would we like to force a
user with a discrete GPU to receive worse performance should they wish to
use a graphics intensive WebGL application.

In WebGL1 there was a context creation flag called
"preferLowPowerToHighPerformance", but I'm not aware how widely this was
implemented, and apparently it's also ignored on macOS (because it defaults
to false, yet the discrete GPU is still not used).

WebGL2 has no equivalent context creation flag.


   1. It would seem we have a sufficient mechanism to express a GPU
   preference, is this a correct assessment?
   2. Why was preferLowPowerToHighPerformance dropped from WebGL2?
   3. Why is preferLowPowerToHighPerformance ignored for WebGL1 on some
   configurations where it would be most useful?
   4. Should an additional mechanism be introduced so a user can switch
   between GPUs at his choice for tabs?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://khronos.org/pipermail/public_webgl_khronos.org/attachments/20170124/4fd42300/attachment.html>

More information about the public_webgl mailing list