[Public WebGL] Re: Public review of updated WEBGL_multiview extension proposal

Olli Etuaho [email protected]
Fri Aug 25 03:33:45 PDT 2017

Thanks for the feedback Rafael,

the need for reads is intended to be covered like this by the current spec:

1) For texture array multiview framebuffers: You can read the layers by creating another framebuffer to use as a read framebuffer, and attach the layer you want to read with framebufferTextureLayer.

2) For opaque multiview framebuffers: Wherever the capability to generate opaque multiview framebuffers is added to a web API, the API can also provide the capability to generate secondary opaque multiview framebuffers with 1 view that point to the same underlying memory. Then the reads could be done using these secondary framebuffers.

Of course 2) does leave more work to be done by other web APIs - so it is a bit of a trade-off. My proposal here also means that you can't implement a function readMultiviewFramebuffer(fbo) that would work for both texture array and opaque multiview framebuffers. So maybe having a readPixels variant that takes a view index would be better, but I wanted to make sure this other alternative is understood before we start inventing additional API entry points that diverge from the native OVR_multiview spec.


From: Rafael Cintron <[email protected]>
Sent: Friday, August 25, 2017 4:49 AM
To: Olli Etuaho; Public WebGL ([email protected])
Subject: Re: Public review of updated WEBGL_multiview extension proposal

The overloads could go on the extension object instead of WebGLRenderingContext.


From: [email protected] <[email protected]> on behalf of Rafael Cintron <[email protected]>
Sent: Thursday, August 24, 2017 2:29:51 PM
To: Olli Etuaho; Public WebGL ([email protected])
Subject: [Public WebGL] RE: Public review of updated WEBGL_multiview extension proposal

This sender failed our fraud detection checks and may not be who they appear to be. Learn about spoofing<http://aka.ms/LearnAboutSpoofing>
I am very supportive of the Multiview extension.  I think it will definitely help WebVR scenarios.

One aspect of the API that could use improvement is the following statement:
“The error INVALID_FRAMEBUFFER_OPERATION is generated by commands that read from the framebuffer such as BlitFramebuffer, ReadPixels, CopyTexImage*, and CopyTexSubImage*, if the number of views in the current read framebuffer is greater than 1.”

ReadPixels and CopyTexImage* are frequently used in test code to ensure correct rendering.  Without these APIs, writing these types of tests will be challenging.  Perhaps a future (or current?) version of the extension could add overloads to these functions that contain an additional ‘view’ integer parameter that specifies the view on which to perform the operation.


From: [email protected] [mailto:[email protected]] On Behalf Of Olli Etuaho
Sent: Friday, August 18, 2017 6:13 AM
To: Public WebGL ([email protected]) <[email protected]>
Subject: [Public WebGL] Public review of updated WEBGL_multiview extension proposal

Hello all!

We have a significantly updated version of the WEBGL_multiview extension proposal, and kindly request the community's feedback on it so we can incorporate the feedback and proceed to move the extension to draft:


I hope this addresses the major concerns people had with regards to the extension in the previous discussion earlier during the year.

The extension is now self-contained and is designed not to require any amendments to the core WebGL spec. But since enabling the implementation of a zero-copy multiview pipeline is still a goal, an "opaque multiview framebuffer" abstraction has been added to the extension proposal. This is a type of a multiview framebuffer that other web APIs like WebVR would be able to create, and that would work also with WebGL 1.0. The specific shape of the WebVR API to create this type of framebuffers will still need to be specified within the WebVR working group.

We have also worked on implementing functionality that would be required by the extension in ANGLE, and the new revision of the proposal has taken findings from that work into account. Particularly, we've removed restrictions on shaders since we found out the restrictions won't be necessary for good performance. On the other hand, we've added some minor restrictions that are required by a performant implementation on top of OpenGL and Direct3D, like baseViewIndex having to match between different framebuffer attachments.

Regards, Olli
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://khronos.org/pipermail/public_webgl_khronos.org/attachments/20170825/40f1f193/attachment.html>

More information about the public_webgl mailing list