Intent to prototype: WebXR Layers

63 views
Skip to first unread message

Imanol Fernández Gorostizaga

unread,
Aug 7, 2020, 7:00:30 AM8/7/20
to
Summary:

WebXR layers spec adds support for Composition layers in WebXR. Composition layers have many benefits:
- Improved Performance and judder.
- Better Legibility/visual fidelity for elements such as text, UI, video, quads, cubemaps.
- Reduced Latency and power consumption

WebXR Layers, specifically XRProjectionLayer, will also enable a better render path for our gecko WebXR implementation. We need it to be competitive on WebXR performance and quality:

- Proper way to implement WebXR msaa. We disabled msaa in the current WebXR implementation because the OpaqueFBO approach exposed in WebXR API is not totally compatible with the path forward from the WebGL team. This is causing Firefox to have worse VR quality than other browsers. We need the XRProjectionLayer render path to enable msaa for the users.

- Proper way to enable multiview. Multiview is already exposed in WebGL but it requires several copies and conversions from textures to side-by-side FBO in the render path to be connected to WebXR. By using the texture-arrays approach provided in the XRProjectionLayer we can implement multiview ideally using a render path with 0 blits. This will help to improve the WebXR performance, especially on projects such as Hubs.

Bug:
https://bugzilla.mozilla.org/show_bug.cgi?id=1652709

Standard:
https://immersive-web.github.io/layers/

Platform coverage: Android initially behind a pref. Desktop later. Most of the code is multi platform though.

Preference:
dom.vr.webxr.layers.enabled

Other browsers:

- Oculus Browser (based on Chrome) has already shipped it behind a pref
- Servo: https://github.com/servo/servo/issues/27468

Secure contexts:
Yes

Is this feature enabled by default in sandboxed iframes?
The same as WebXR, it will not be enabled by default in sandboxed iframes

web-platform-tests:
https://bugzilla.mozilla.org/show_bug.cgi?id=1633549
Layers WPT will be added to: https://github.com/web-platform-tests/wpt/tree/master/webxr

Link to standards-positions discussion:

https://github.com/mozilla/standards-positions/issues/412

Reply all
Reply to author
Forward
0 new messages