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

Re: [Public WebGL] option for suggesting "low power" mode at context creation

On Sep 27, 2012, at 3:08 PM, Kenneth Russell <kbr@google.com> wrote:

On Thu, Sep 27, 2012 at 2:48 PM, Chris Marrin <cmarrin@apple.com> wrote:

On Sep 27, 2012, at 2:01 PM, Kenneth Russell <kbr@google.com> wrote:

One other issue needing consideration. Let's assume that the
"preferLowPowerToHighPerformance" flag is added to the
WebGLContextAttributes dictionary, and that
WebGLRenderingContext.getContextAttributes() returns the correct value
for the flag. (In other words, if the flag is set to true during
getContext, and the machine has two GPUs, and the implementation
supports low-power mode, then getContextAttributes() will return true
for the flag as well; otherwise, false.)

On dual-GPU Mac OS machines, at least, it will then be possible to get
WebGL to run on either the integrated or discrete GPU, and detect
which one is being used in _javascript_.

In order to keep implementations honest, it will be necessary to
change the WebGL conformance suite to run all of the tests twice, once
on the integrated GPU and once on the discrete GPU. Further, there are
currently many more test failures on Mac OS when running the
conformance suite on integrated GPUs than on discrete GPUs. This means
adding a low-power flag now will delay the point at which the next
snapshot of the WebGL conformance tests could be successfully passed.
There had been some hope that a new snapshot could be taken soon,
after triaging the existing test failures on top of tree.

Dean, Chris, any thoughts on this issue?

If we are to make it possible for authors to control which GPU is being used
then we certainly need to have a conformance suite that tests both paths.
But an implementation can pass the conformance suite immediately by simply
ignoring the flag and always enabling the GPU that passes.

That's true but then it should ship in that configuration. If that
implementation intends to ship honoring the low-power GPU preference,
then it should pass the conformance suite while honoring that
preference. All I'm trying to say here is that more work will be
needed on Apple's Intel OpenGL driver (and the WebGL conformance
suite) in order to reasonably add this flag. Given that, are you still
in favor of adding it?

I think it's better to add it to the spec and leave it turned off until the conformance tests can pass than to not add it at all. It will be useful to implement it and make it possible to turn it on with a developer switch. That way we can run the conformance tests and see the breakage so we can submit bugs. And that way, the Apple OpenGL group can also run the tests in this config and see the failures for themselves.

~Chris Marrin