Add the concept of an opaque multiview framebuffer to WEBGL_multiview

An opaque multiview framebuffer acts as a multiview framebuffer, but
has immutable attachments defined by another web API. Under the hood,
the views of an opaque multiview framebuffer could be implemented in
whichever way is most optimal for a given situation. For example, they
could be texture layers, or side-by-side viewports on a 2D texture.

This will make it possible to create a zero-copy display pipeline that
makes use of multiview rendering. Another web API such as WebVR 2.0
could expose an opaque multiview framebuffer for rendering, and
specify rules when it gets displayed or invalidated. Since the
framebuffer is owned entirely by the other web API and only interacts
with WebGL in the role of a render target, the interactions between
WebGL and the other API remain fairly simple.

The opaque multiview framebuffer would be possible to support in
WebGL 1.0 as well, since it does not require API user facing support
for texture arrays. This revision doesn't yet fully address WebGL 1.0
compatibility of the extension, but is intended as one step towards
that.

This spec also leaves open the possibility to expose the underlying
memory of an opaque multiview framebuffer in some other way as well.
It could be complemented by a separate API for rendering to only one
of the views at a time, for example.

Includes a fix to an example in the WEBGL_multiview spec.
1 file changed
tree: 518cfda319ad70768076367237d7e28c01c90fb7
  1. conformance-suites/
  2. doc/
  3. extensions/
  4. other/
  5. resources/
  6. sdk/
  7. specs/
  8. .gitattributes
  9. .gitconfig
  10. .gitignore
  11. .gitmodules
  12. .travis.yml
  13. codereview.settings
  14. CONTRIBUTING.md
  15. expand_date
  16. index.php
  17. install-gitconfig.bat
  18. install-gitconfig.sh
  19. README.md
README.md

The Official Khronos WebGL Repository

This is the official home of the Khronos WebGL repository for the WebGL specifications and the WebGL conformance test suite.

Before adding a new test or editing an existing test please read these guidelines.

You can find live versions of the specifications at http://www.khronos.org/webgl/

The newest work in progress WebGL conformance test suite for the next version of the spec can be accessed at. https://www.khronos.org/registry/webgl/sdk/tests/webgl-conformance-tests.html

Official live versions of the conformance test suite can be found at https://www.khronos.org/registry/webgl/conformance-suites/

The WebGL Wiki can be found here http://www.khronos.org/webgl/wiki/

Cloning this repository

When cloning this repository please pass the --recursive flag to git:

git clone --recursive [URL]

This will properly install the WebGLDeveloperTools repository as a git submodule under sdk/devtools/.

The last edited date in several specifications is automatically updated via a smudge filter. To benefit from this you must issue the following commands in the root of your clone.

On Unix (Linux, Mac OS X, etc.) platforms and Windows using Git for Windows' Git Bash or Cygwin's bash terminal:

./install-gitconfig.sh
rm specs/latest/*/index.html
git checkout !$

On Windows with the Command Prompt (requires git.exe in a directory on your %PATH%):

install-gitconfig.bat
del specs/latest/1.0/index.html specs/latest/2.0/index.html 
git checkout specs/latest/1.0/index.html specs/latest/2.0/index.html 

The first command adds an [include] of the repo's .gitconfig to the local git config file.git/config in your clone of the repo. .gitconfig contains the config of the “dater” filter. The remaining commands force a new checkout of the index.html files to smudge them with the date. These two are unnecessary if you plan to edit these files. All are unecessary if you do not care about having the dates shown.