Merge pull request #179 from jhelferty-nv/master
OVR_multiview version #4
diff --git a/extensions/OVR/OVR_multiview.txt b/extensions/OVR/OVR_multiview.txt
index 88cfc2d..bdbd53e 100644
--- a/extensions/OVR/OVR_multiview.txt
+++ b/extensions/OVR/OVR_multiview.txt
@@ -27,6 +27,7 @@
Nigel Williams, Qualcomm
Tobias Hector, Imagination Technologies
Daniel Koch, NVIDIA Corporation
+ James Helferty, NVIDIA Corporation
Status
@@ -34,8 +35,8 @@
Version
- Last Modified Date: December 13, 2017
- Revision: 3
+ Last Modified Date: May 2, 2018
+ Revision: 4
Number
@@ -56,15 +57,17 @@
EXT_direct_state_access.
This extension interacts with OpenGL ES 3.2, OpenGL 4.0,
- EXT_tessellation_shader, and ARB_tessellation_shader.
+ EXT_tessellation_shader, OES_tessellation_shader, and
+ ARB_tessellation_shader.
This extension interacts with OpenGL ES 3.2, OpenGL 3.2,
- EXT_geometry_shader, and ARB_geometry_shader4.
+ EXT_geometry_shader, OES_geometry_shader and ARB_geometry_shader4
This extension interacts with OpenGL 4.3, ARB_multi_draw_indirect, and
EXT_multi_draw_indirect.
- This extension interacts with OpenGL 3.0.
+ This extension interacts with OpenGL 3.0, the OpenGL 3.0 Compatibility
+ Profile, and ARB_fragment_layer_viewport.
Overview
@@ -162,6 +165,11 @@
- no timer queries (section 4.3)
- occlusion query results must be between max per-view and the sum
of the per-view queries, inclusive (section 15.1.4)."
+ - in fragment shader the contents of gl_Layer are undefined
+
+ [[ If implemented in OpenGL ]]
+ - the number of views rendered to by Begin/End is an undefined subset
+ of the views present in the framebuffer
Add the following to list of <pname> parameters which can be queried
via GetFramebufferAttachmentParameteriv when the value of
@@ -286,7 +294,7 @@
- There is an active program for tessellation control, tessellation
evaluation, or geometry stages, or
- - Transform feedback is active."
+ - Transform feedback is active and not paused."
Modifications to Chapter 15 of the OpenGL ES 3.2 Specification (Writing
Fragments and Samples to the Framebuffer) [OpenGL 4.6 Chapter 17]
@@ -409,19 +417,19 @@
are supported, the command NamedFramebufferTextureMultiviewOVR does not
exist.
-Interactions with OpenGL ES 3.2, OpenGL 4.0, EXT_tessellation_shader, and
-ARB_tessellation_shader.
+Interactions with OpenGL ES 3.2, OpenGL 4.0, EXT_tessellation_shader,
+OES_tessellation_shader and ARB_tessellation_shader.
- If none of OpenGL ES 3.2, OpenGL 4.0, EXT_tessellation_shader, or
- ARB_tessellation shader are supported, ignore all references to
- tessellation shaders.
+ If none of OpenGL ES 3.2, OpenGL 4.0, EXT_tessellation_shader,
+ OES_tessellation_shader or ARB_tessellation shader are supported, ignore
+ all references to tessellation shaders.
-Interactions with OpenGL ES 3.2, OpenGL 3.2, EXT_geometry_shader, and
-ARB_geometry_shader4.
+Interactions with OpenGL ES 3.2, OpenGL 3.2, EXT_geometry_shader,
+OES_geometry_shader, and ARB_geometry_shader4.
- If none of OpenGL ES 3.2, OpenGL 3.2, EXT_geometry_shader, or
- ARB_geometry_shader4 are supported, ignore all references to geometry
- shaders.
+ If none of OpenGL ES 3.2, OpenGL 3.2, EXT_geometry_shader,
+ OES_geometry_shader, or ARB_geometry_shader4 are supported, ignore all
+ references to geometry shaders.
Interactions with OpenGL 4.3, ARB_multi_draw_indirect, and
EXT_multi_draw_indirect.
@@ -429,11 +437,24 @@
If none of OpenGL 4.3, ARB_multi_draw_indirect, or EXT_multi_draw_indirect
are supported, ignore all references to multi-draw-indirect.
-Interactions with with OpenGL 3.0
+Interactions with OpenGL 3.0
If OpenGL 3.0 (or later) is not supported, ignore all references to the
SAMPLES_PASSED occlusion query target.
+Interactions with OpenGL ES 3.2, OpenGL 4.3, EXT_geometry_shader,
+OES_geometry_shader, and ARB_fragment_layer_viewport
+
+ If none of OpenGL ES 3.2, OpenGL 4.3, EXT_geometry_shader,
+ OES_geometry_shader, or ARB_fragment_layer_viewport is supported, ignore
+ all references to gl_Layer.
+
+Interactions with OpenGL 3.0 Compatibility Profile
+
+ If OpenGL 3.0 Compatibility Profile (or later) is not supported, ignore all
+ references to Begin/End.
+
+
Issues
(1) Should geometry shaders be allowed in multiview mode?
@@ -708,6 +729,21 @@
drivers may of course continue to allow such shaders to compile, but
it is not possible to use them.
+ (33) How does the gl_Layer builtin input in the fragment shader interact
+ with multiview?
+
+ RESOLVED: Whenever a multiview framebuffer is bound, the contents of
+ gl_Layer in the fragment shader are undefined. This is consistent with
+ issue (1), which disallows geometry shader with multiview framebuffers.
+
+ (34) How does this extension interact with the OpenGL Compatibility
+ Profile?
+
+ RESOLVED: When a multiview framebuffer is bound, Begin/End may render to a
+ subset of the views in the framebuffer. (Specifically which views is
+ undefined, and may be any subset of the views attached to the framebuffer,
+ including the null set.)
+
Revision History
@@ -738,3 +774,8 @@
3 12/13/17 dgkoch Clarify that compute shaders are orthogonal to multiview
framebuffers (Issue 31). Remove gl_ViewID_OVR from compute,
tessellation, and geometry shaders.
+ 4 05/02/18 jhelferty Clarify interop rules for gl_Layer in fragment shader (33), and
+ interop with compatibility profile's Begin/End (34). Add mention
+ of OES_geometry_shader and OES_tessellation_shader to interop.
+ Clarify what happens when transform feedback is paused.
+