Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Defer XRWebGLLayer viewport scaling #617

Closed
toji opened this issue Apr 30, 2019 · 3 comments · Fixed by #631
Closed

Defer XRWebGLLayer viewport scaling #617

toji opened this issue Apr 30, 2019 · 3 comments · Fixed by #631
Labels
potential breaking change Issues that may affect the core design structure.

Comments

@toji
Copy link
Member

toji commented Apr 30, 2019

I'd like to propose that we defer specification of the XRWebGLLayer function requestViewportScaling until after we have reached Candidate Recommendation status.

Reason: While requestViewportScaling serves a unique purpose in allowing realtime quality changes, this is not the primary rendering quality knob available to developers. That would be the framebufferScaleFactor, which is set at layer creation time and will generally have a much larger performance/quality impact. I've heard feedback that this will be a very difficult feature to use effectively without supplying developers with more detailed frame timing and profiling information. This has proven to be a tricky feature for implementations to get right as well, with it being a persistent source of bugs and cross-browser compatibility issues since way back in the days of WebVR. And finally there's an outstanding issue (#541) regarding the timing of when exactly this change would apply to the layer that could be set aside in favor of focusing on more important functionality.

Due to all of the above, it seems like we could comfortably defer this advanced feature till after CR.

Forward compatibility: Since this is a function it's easy for JavaScript developers to feature-test for it's existence once it's been re-introduced.

This is part of what will be an ongoing effort to identify ways to simplify the core API surface. The intent is to make the initial release of the API easier to spec, review, and implement, which is turn will help us keep on track for hitting CR later this year.

@toji toji added the agenda Request discussion in the next telecon/FTF label Apr 30, 2019
@cwilso cwilso removed the agenda Request discussion in the next telecon/FTF label May 1, 2019
@cwilso
Copy link
Member

cwilso commented May 6, 2019

@thetuvix could you comment on this proposal?

@toji toji added the potential breaking change Issues that may affect the core design structure. label May 6, 2019
@thetuvix
Copy link
Contributor

thetuvix commented May 7, 2019

Apologies for the delay! I’ve followed up with folks internally at Microsoft and they agree that the value of per-frame viewport adjustments is limited without per-frame CPU/GPU stats to complete the app’s feedback loop. On HoloLens, we’ve primarily seen apps “fire and forget” a viewport scale once up front, which would now be better handled by framebufferScaleFactor.

We’re fine to remove requestViewportScaling from WebXR 1.0.

@toji
Copy link
Member Author

toji commented May 7, 2019

Thanks Alex! That's great to have confirmed. If anyone else wants to speak up for/against this method being in WebXR core I'm still happy to hear it, but I've speculatively put up a PR for the removal in the meantime. (#631)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
potential breaking change Issues that may affect the core design structure.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants