In Issue 864524 the WEBGL_multiview extension has been implemented and exposed on multiple platforms for accelerating VR rendering.
Unfortunately the lead developer of this work is leaving the company at which he's working. These are the remaining tasks for integrating this extension into Chrome's WebXR implementation, per an offline email:
1. Wait until Intel finishes ANGLE_texture_multisample implementation work that exposes multisampled textures on ES 3.0. Big chunk of the functionality is being worked on here: https://chromium-review.googlesource.com/c/angle/angle/+/804613
2. Expose the ANGLE_texture_multisample, OES_texture_storage_2d_multisample and ANGLE_multiview_multisample extensions through Chromium command buffer (the API surface is quite small)
3. For non-multisampling multiview, you have a choice between using a layered (texture array) or side-by-side (2d texture) render target. WebXR API needs to allocate a suitable texture to use as a render target, and use the ANGLE_multiview API to bind the texture as a multiview framebuffer attachment into its opaque framebuffer. When a frame is submitted WebXR needs to detach the texture from the opaque framebuffer and put a new one in its place, similarly to the WebGL default framebuffer.
4. For multisampled multiview, rendering is always done to a layered render target. The multisampled render target also needs to be resolved to a single-sample render target by calling blitFramebuffer just before submitting the frame. The resolve target can be either layered or laid out side-by-side.
5. Validation for opaque framebuffer operations needs to be added to the WebGL API.
Comment 1 by billorr@chromium.org
, Oct 4