Merge pull request #180 from nwnk/glx-oml-sync-control

GLX_OML_sync_control: Remove spurious GLXFBConfig attribute
diff --git a/extensions/ARB/ARB_gl_spirv.txt b/extensions/ARB/ARB_gl_spirv.txt
index 7c7cb4b..e01c0be 100644
--- a/extensions/ARB/ARB_gl_spirv.txt
+++ b/extensions/ARB/ARB_gl_spirv.txt
@@ -429,6 +429,10 @@
         differently for SPIR-V used in Vulkan and OpenGL
       . gl_FragColor can be written to, but it won't broadcast, for versions of
         OpenGL that support gl_FragColor
+      . Vulkan does not allow multi-dimensional arrays of resources like
+        UBOs and SSBOs in its SPIR-V environment spec. SPIR-V supports
+        it and OpenGL already allows this for GLSL shaders. SPIR-V
+        for OpenGL also allows it.
 
     Additions to the SPIR-V specification:
       + *Offset* can also apply to an object, for transform feedback.
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.
+
diff --git a/index_es.php b/index_es.php
index 8096f99..34b9e64 100644
--- a/index_es.php
+++ b/index_es.php
@@ -56,14 +56,12 @@
      Documentation </h2>
 
 <ul>
-<li> OpenGL ES 3.2 Specification (November 3, 2016)
+<li> OpenGL ES 3.2 Specification (May 14, 2018)
      <a href="specs/es/3.2/es_spec_3.2.pdf"> without changes marked </a>
      and
      <a href="specs/es/3.2/es_spec_3.2.withchanges.pdf"> with changes marked </a>. </li>
-<li> OpenGL ES Shading Language 3.20 Specification (January 29, 2016)
-     <a href="specs/es/3.2/GLSL_ES_Specification_3.20.pdf"> without changes marked </a>
-     and
-     <a href="specs/es/3.2/GLSL_ES_Specification_3.20.withchanges.pdf"> with changes marked </a>. </li>
+<li> OpenGL ES Shading Language 3.20 Specification (May 11, 2018)
+     <a href="specs/es/3.2/GLSL_ES_Specification_3.20.pdf"> (PDF) </a>
 <li> <a href="http://www.khronos.org/opengles/sdk/docs/man32/">
      OpenGL ES 3.2 Online Manual Pages.</a> </li>
 <li> <a href="https://www.khronos.org/developers/reference-cards">
diff --git a/index_gl.php b/index_gl.php
index 3dcd4ae..33db303 100644
--- a/index_gl.php
+++ b/index_gl.php
@@ -48,29 +48,21 @@
 
 <ul>
 <li> <b> Current Specifications (OpenGL 4.6) </b>
-<li> OpenGL 4.6 API Specification (updated July 30, 2017)
+<li> OpenGL 4.6 API Specification (updated May 14, 2018)
     <ul>
     <li> <a href="specs/gl/glspec46.core.pdf"> Core Profile Specification
          </a> </li>
-        <!--
     <li> <a href="specs/gl/glspec46.core.withchanges.pdf"> Core Profile
          Specification with changes marked </a> </li>
-        -->
     <li> <a href="specs/gl/glspec46.compatibility.pdf"> Compatibility Profile
          Specification </a> </li>
-        <!--
     <li> <a href="specs/gl/glspec46.compatibility.withchanges.pdf">
          Compatibility Profile Specification with changes marked </a>
          </li>
-        -->
     </ul> </li>
-<li> OpenGL Shading Language 4.60 Specification (updated July 23, 2017)
-    <ul>
-    <li> <a href="specs/gl/GLSLangSpec.4.60.pdf"> GLSL Specification </a>
-         </li>
-    <li> <a href="specs/gl/GLSLangSpec.4.60.diff.pdf"> GLSL Specification
-         with changes marked </a> </li>
-    </ul> </li>
+<li> OpenGL Shading Language 4.60 Specification (updated May 11, 2018)
+     <a href="specs/gl/GLSLangSpec.4.60.pdf"> (PDF) </a> </li>
+
 <li> <a href="http://www.opengl.org/sdk/docs/man4/"> OpenGL 4.5 API and
      Shading Language Reference Pages </a> (not yet updated) </li>
 
diff --git a/specs/es/3.2/GLSL_ES_Specification_3.20.pdf b/specs/es/3.2/GLSL_ES_Specification_3.20.pdf
index e18803f..44f72dc 100644
--- a/specs/es/3.2/GLSL_ES_Specification_3.20.pdf
+++ b/specs/es/3.2/GLSL_ES_Specification_3.20.pdf
Binary files differ
diff --git a/specs/es/3.2/GLSL_ES_Specification_3.20.withchanges.pdf b/specs/es/3.2/GLSL_ES_Specification_3.20.withchanges.pdf
deleted file mode 100644
index a5c9196..0000000
--- a/specs/es/3.2/GLSL_ES_Specification_3.20.withchanges.pdf
+++ /dev/null
Binary files differ
diff --git a/specs/es/3.2/es_spec_3.2.pdf b/specs/es/3.2/es_spec_3.2.pdf
index af41244..93624e7 100644
--- a/specs/es/3.2/es_spec_3.2.pdf
+++ b/specs/es/3.2/es_spec_3.2.pdf
Binary files differ
diff --git a/specs/es/3.2/es_spec_3.2.withchanges.pdf b/specs/es/3.2/es_spec_3.2.withchanges.pdf
index d38965b..2d0ead6 100644
--- a/specs/es/3.2/es_spec_3.2.withchanges.pdf
+++ b/specs/es/3.2/es_spec_3.2.withchanges.pdf
Binary files differ
diff --git a/specs/gl/GLSLangSpec.4.60.diff.pdf b/specs/gl/GLSLangSpec.4.60.diff.pdf
deleted file mode 100644
index 71e4983..0000000
--- a/specs/gl/GLSLangSpec.4.60.diff.pdf
+++ /dev/null
Binary files differ
diff --git a/specs/gl/GLSLangSpec.4.60.pdf b/specs/gl/GLSLangSpec.4.60.pdf
index 70e32b1..5388117 100644
--- a/specs/gl/GLSLangSpec.4.60.pdf
+++ b/specs/gl/GLSLangSpec.4.60.pdf
Binary files differ
diff --git a/specs/gl/glspec46.compatibility.pdf b/specs/gl/glspec46.compatibility.pdf
index 01349e5..9f09b25 100644
--- a/specs/gl/glspec46.compatibility.pdf
+++ b/specs/gl/glspec46.compatibility.pdf
Binary files differ
diff --git a/specs/gl/glspec46.compatibility.withchanges.pdf b/specs/gl/glspec46.compatibility.withchanges.pdf
new file mode 100644
index 0000000..5344bbc
--- /dev/null
+++ b/specs/gl/glspec46.compatibility.withchanges.pdf
Binary files differ
diff --git a/specs/gl/glspec46.core.pdf b/specs/gl/glspec46.core.pdf
index ca9ba98..65dba25 100644
--- a/specs/gl/glspec46.core.pdf
+++ b/specs/gl/glspec46.core.pdf
Binary files differ
diff --git a/specs/gl/glspec46.core.withchanges.pdf b/specs/gl/glspec46.core.withchanges.pdf
new file mode 100644
index 0000000..b92ea3a
--- /dev/null
+++ b/specs/gl/glspec46.core.withchanges.pdf
Binary files differ