Merge pull request #274 from tksuoran/enum-fixes

Enum fixes
diff --git a/api/GL/glcorearb.h b/api/GL/glcorearb.h
index 3f76c23..b43ac30 100755
--- a/api/GL/glcorearb.h
+++ b/api/GL/glcorearb.h
@@ -4567,6 +4567,18 @@
 #endif
 #endif /* GL_EXT_draw_instanced */
 
+#ifndef GL_EXT_multiview_tessellation_geometry_shader
+#define GL_EXT_multiview_tessellation_geometry_shader 1
+#endif /* GL_EXT_multiview_tessellation_geometry_shader */
+
+#ifndef GL_EXT_multiview_texture_multisample
+#define GL_EXT_multiview_texture_multisample 1
+#endif /* GL_EXT_multiview_texture_multisample */
+
+#ifndef GL_EXT_multiview_timer_query
+#define GL_EXT_multiview_timer_query 1
+#endif /* GL_EXT_multiview_timer_query */
+
 #ifndef GL_EXT_polygon_offset_clamp
 #define GL_EXT_polygon_offset_clamp 1
 #define GL_POLYGON_OFFSET_CLAMP_EXT       0x8E1B
@@ -4650,6 +4662,10 @@
 #define GL_SKIP_DECODE_EXT                0x8A4A
 #endif /* GL_EXT_texture_sRGB_decode */
 
+#ifndef GL_EXT_texture_shadow_lod
+#define GL_EXT_texture_shadow_lod 1
+#endif /* GL_EXT_texture_shadow_lod */
+
 #ifndef GL_EXT_window_rectangles
 #define GL_EXT_window_rectangles 1
 #define GL_INCLUSIVE_EXT                  0x8F10
diff --git a/api/GL/glext.h b/api/GL/glext.h
index fe03eb6..d72cc75 100644
--- a/api/GL/glext.h
+++ b/api/GL/glext.h
@@ -51,7 +51,7 @@
 #define GLAPI extern
 #endif
 
-#define GL_GLEXT_VERSION 20190326
+#define GL_GLEXT_VERSION 20190524
 
 #include <KHR/khrplatform.h>
 
@@ -7794,6 +7794,18 @@
 #endif
 #endif /* GL_EXT_multisample */
 
+#ifndef GL_EXT_multiview_tessellation_geometry_shader
+#define GL_EXT_multiview_tessellation_geometry_shader 1
+#endif /* GL_EXT_multiview_tessellation_geometry_shader */
+
+#ifndef GL_EXT_multiview_texture_multisample
+#define GL_EXT_multiview_texture_multisample 1
+#endif /* GL_EXT_multiview_texture_multisample */
+
+#ifndef GL_EXT_multiview_timer_query
+#define GL_EXT_multiview_timer_query 1
+#endif /* GL_EXT_multiview_timer_query */
+
 #ifndef GL_EXT_packed_depth_stencil
 #define GL_EXT_packed_depth_stencil 1
 #define GL_DEPTH_STENCIL_EXT              0x84F9
@@ -8524,6 +8536,10 @@
 #define GL_SKIP_DECODE_EXT                0x8A4A
 #endif /* GL_EXT_texture_sRGB_decode */
 
+#ifndef GL_EXT_texture_shadow_lod
+#define GL_EXT_texture_shadow_lod 1
+#endif /* GL_EXT_texture_shadow_lod */
+
 #ifndef GL_EXT_texture_shared_exponent
 #define GL_EXT_texture_shared_exponent 1
 #define GL_RGB9_E5_EXT                    0x8C3D
diff --git a/api/GL/glxext.h b/api/GL/glxext.h
index a821d95..f250ccc 100755
--- a/api/GL/glxext.h
+++ b/api/GL/glxext.h
@@ -34,7 +34,7 @@
 **   https://github.com/KhronosGroup/OpenGL-Registry
 */
 
-#define GLX_GLXEXT_VERSION 20190411
+#define GLX_GLXEXT_VERSION 20190524
 
 /* Generated C header for:
  * API: glx
diff --git a/api/GL/wgl.h b/api/GL/wgl.h
index 3f94946..46d1881 100644
--- a/api/GL/wgl.h
+++ b/api/GL/wgl.h
@@ -39,7 +39,7 @@
 #include <windows.h>
 #endif
 
-/* Generated on date 20190228 */
+/* Generated on date 20190524 */
 
 /* Generated C header for:
  * API: wgl
diff --git a/api/GL/wglext.h b/api/GL/wglext.h
index cb31ac4..5c858df 100755
--- a/api/GL/wglext.h
+++ b/api/GL/wglext.h
@@ -39,7 +39,7 @@
 #include <windows.h>
 #endif
 
-#define WGL_WGLEXT_VERSION 20190228
+#define WGL_WGLEXT_VERSION 20190524
 
 /* Generated C header for:
  * API: wgl
diff --git a/api/GLES/gl.h b/api/GLES/gl.h
index 9ea2482..0d9022d 100644
--- a/api/GLES/gl.h
+++ b/api/GLES/gl.h
@@ -36,7 +36,7 @@
 
 #include <GLES/glplatform.h>
 
-/* Generated on date 20190228 */
+/* Generated on date 20190524 */
 
 /* Generated C header for:
  * API: gles1
diff --git a/api/GLES/glext.h b/api/GLES/glext.h
index 0299e88..808daad 100644
--- a/api/GLES/glext.h
+++ b/api/GLES/glext.h
@@ -38,7 +38,7 @@
 #define GL_APIENTRYP GL_APIENTRY*
 #endif
 
-/* Generated on date 20190228 */
+/* Generated on date 20190524 */
 
 /* Generated C header for:
  * API: gles1
diff --git a/api/GLES2/gl2.h b/api/GLES2/gl2.h
index a48067d..7407957 100644
--- a/api/GLES2/gl2.h
+++ b/api/GLES2/gl2.h
@@ -44,7 +44,7 @@
 #define GL_GLES_PROTOTYPES 1
 #endif
 
-/* Generated on date 20190228 */
+/* Generated on date 20190524 */
 
 /* Generated C header for:
  * API: gles2
diff --git a/api/GLES2/gl2ext.h b/api/GLES2/gl2ext.h
index d0a3e6a..7305a16 100644
--- a/api/GLES2/gl2ext.h
+++ b/api/GLES2/gl2ext.h
@@ -38,7 +38,7 @@
 #define GL_APIENTRYP GL_APIENTRY*
 #endif
 
-/* Generated on date 20190402 */
+/* Generated on date 20190524 */
 
 /* Generated C header for:
  * API: gles2
@@ -1618,6 +1618,18 @@
 #endif
 #endif /* GL_EXT_multiview_draw_buffers */
 
+#ifndef GL_EXT_multiview_tessellation_geometry_shader
+#define GL_EXT_multiview_tessellation_geometry_shader 1
+#endif /* GL_EXT_multiview_tessellation_geometry_shader */
+
+#ifndef GL_EXT_multiview_texture_multisample
+#define GL_EXT_multiview_texture_multisample 1
+#endif /* GL_EXT_multiview_texture_multisample */
+
+#ifndef GL_EXT_multiview_timer_query
+#define GL_EXT_multiview_timer_query 1
+#endif /* GL_EXT_multiview_timer_query */
+
 #ifndef GL_EXT_occlusion_query_boolean
 #define GL_EXT_occlusion_query_boolean 1
 #define GL_ANY_SAMPLES_PASSED_EXT         0x8C2F
@@ -2188,6 +2200,10 @@
 #define GL_SKIP_DECODE_EXT                0x8A4A
 #endif /* GL_EXT_texture_sRGB_decode */
 
+#ifndef GL_EXT_texture_shadow_lod
+#define GL_EXT_texture_shadow_lod 1
+#endif /* GL_EXT_texture_shadow_lod */
+
 #ifndef GL_EXT_texture_storage
 #define GL_EXT_texture_storage 1
 #define GL_TEXTURE_IMMUTABLE_FORMAT_EXT   0x912F
@@ -2746,6 +2762,10 @@
 #endif
 #endif /* GL_NV_fragment_coverage_to_color */
 
+#ifndef GL_NV_fragment_shader_barycentric
+#define GL_NV_fragment_shader_barycentric 1
+#endif /* GL_NV_fragment_shader_barycentric */
+
 #ifndef GL_NV_fragment_shader_interlock
 #define GL_NV_fragment_shader_interlock 1
 #endif /* GL_NV_fragment_shader_interlock */
diff --git a/api/GLES3/gl3.h b/api/GLES3/gl3.h
index 7af7dfb..70b33a7 100644
--- a/api/GLES3/gl3.h
+++ b/api/GLES3/gl3.h
@@ -44,7 +44,7 @@
 #define GL_GLES_PROTOTYPES 1
 #endif
 
-/* Generated on date 20190326 */
+/* Generated on date 20190524 */
 
 /* Generated C header for:
  * API: gles2
diff --git a/extensions/EXT/EXT_multiview_tessellation_geometry_shader.txt b/extensions/EXT/EXT_multiview_tessellation_geometry_shader.txt
new file mode 100644
index 0000000..1d0707a
--- /dev/null
+++ b/extensions/EXT/EXT_multiview_tessellation_geometry_shader.txt
@@ -0,0 +1,230 @@
+Name

+

+    EXT_multiview_tessellation_geometry_shader

+

+Name Strings

+

+    GL_EXT_multiview_tessellation_geometry_shader

+

+Contact

+

+    Robert Menzel, NVIDIA Corporation (rmenzel 'at' nvidia.com)

+

+Contributors

+

+    Pat Brown, NVIDIA Corporation

+    Jan-Harald Fredriksen, Arm Limited

+    James Helferty, NVIDIA Corporation

+    Kedarnath Thangudu, NVIDIA Corporation

+

+Status

+

+    Complete.

+

+Version

+

+    Last Modified Date:  May 13, 2019

+    Author Revision: 1

+

+Number

+

+    OpenGL Extension #538

+    OpenGL ES Extension #319

+

+Dependencies

+

+    OpenGL 4.0 or OpenGL ES 3.2 are required.

+

+    This extension is written against the OpenGL 4.6 specification

+    (Core Profile) (February 2, 2019) and OpenGL ES 3.2 specification

+    (February 2, 2019).

+

+    This extension is written against the OpenGL ES Shading Language 3.20.05

+    specification and OpenGL Shading Language 4.60.6 specification.

+    

+    This extension interacts with OVR_multiview2.

+    

+    OVR_multiview is required.

+

+Overview

+

+    OVR_multiview introduced multiview rendering to OpenGL and OpenGL ES.

+    

+    This extension removes one of the limitations of the OVR_multiview 

+    extension by allowing the use of tessellation control, tessellation 

+    evaluation, and geometry shaders during multiview rendering. 

+    OVR_multiview by itself forbids the use of any of these shader types.

+    

+    When using tessellation control, tessellation evaluation, and geometry 

+    shaders during multiview rendering, any such shader must use the 

+    "num_views" layout qualifier provided by the matching shading language 

+    extension to specify a view count. The view count specified in these 

+    shaders must match the count specified in the vertex shader. Additionally, 

+    the shading language extension allows these shaders to use the 

+    gl_ViewID_OVR built-in to handle tessellation or geometry shader processing 

+    differently for each view.

+    

+    OVR_multiview2 extends OVR_multiview by allowing view-dependent values

+    for any vertex attributes instead of just the position. This new extension

+    does not imply the availability of OVR_multiview2, but if both are available,

+    view-dependent values for any vertex attributes are also allowed in 

+    tessellation control, tessellation evaluation, and geometry shaders.

+    

+    

+New Tokens

+

+    None.

+

+    

+New Procedures and Functions

+

+    None.

+    

+    

+Modifications to Chapter 9 of the OpenGL ES 3.2 Specification as well as

+Chapter 9 of the OpenGL 4.6 Specification (Framebuffers and Framebuffer 

+Objects) 

+    

+    Modify the subsection 9.2.2.2 (Multiview Images) which has been added by 

+    OVR_multiview:

+    

+    Remove from the list of restrictions ("In this mode there are several 

+    restrictions:") the following items:

+

+    "- no tessellation control or evaluation shaders (section 11.1.3.11)

+    - no geometry shader (section 11.1.3.11)"

+        

+    effectively allowing the usage of multiview rendering with tessellation and

+    geometry shaders.

+    

+    In the same list replace

+        "- in fragment shader the contents of gl_Layer are undefined"

+    with

+        "- reads and writes of gl_Layer by any shaders are undefined".

+    

+    

+Modifications to Chapter 11 of the OpenGL ES 3.2 Specification as well

+as Chapter 11 of the OpenGL 4.6 Specification (Programmable Vertex Processing)

+

+    Modify section 11.1.3.11 (Validation) by removing the following condition

+    from the list of reasons that may result in an INVALID_OPERATION error

+    being generated by any command that transfers vertices to the GL

+    (added by OVR_multiview) after

+    "Any attachment of the draw framebuffer is multiview (section 9.2.8)

+      and any of the following conditions are true:":

+

+    "- There is an active program for tessellation control, tessellation

+      evaluation, or geometry stages, or".

+    

+    

+    Modify section 11.1.3.11 (Validation) by adding the following 

+    item to the bullet point list of conditions generating an INVALID_OPERATION:

+        "The active program for the vertex, tessellation control, tessellation 

+        evaluation, or geometry shader stages contains an executable that declared 

+        a multiview view count using the "num_views" layout qualifier, but the 

+        active program for another one of these stages includes an executable that 

+        declared a different view count or failed to declare any view count."

+

+    

+Modifications to The OpenGL ES Shading Language Specification, Version 3.20.05

+and The OpenGL Shading Language Specification, Version 4.60.6:

+

+    Including the following line in a tessellation control, tessellation evaluation, 

+    or geometry shader can be used to control the language features described in 

+    this extension:

+

+      #extension GL_EXT_multiview_tessellation_geometry_shader : <behavior>

+

+    where <behavior> is as specified in section 3.5.

+

+    A new preprocessor #define is added to the OpenGL ES Shading Language

+    as well as the OpenGL Shading Language for those shaders:

+

+      #define GL_EXT_multiview_tessellation_geometry_shader 1

+    

+    In section "Input Layout Qualifiers" a new paragraph was added by OVR_multiview

+    (section 4.3.8.1 in the OpenGL ES Shading Language Specification, version 3.00.04,

+    which moved to section 4.4.1 in version 3.20.05 of the OpenGL ES Shading Language 

+    Specification and version 4.60.6 of the OpenGL Shading Language Specification).

+    

+    In this new paragraph replace

+        "Vertex shaders also allow the following layout qualifier on 'in' only"

+    with

+        "Vertex, tessellation control, tessellation evaluation and geometry shaders 

+        also allow the following layout qualifier on 'in' only".

+    

+    In the following paragraph of the same addition by OVR_multiview replace

+        "If multiple vertex shaders attached to a

+        single program object declare num_views, the declarations must be

+        identical; otherwise a link-time error results."

+    with

+        "If multiple shaders of the same type attached to a

+        single program object declare num_views, the declarations must be

+        identical; otherwise a link-time error results.

+        

+        If any vertex, tessellation control, tessellation evaluation, or 

+        geometry shader in a single program object declares a view count using 

+        'num_views', at least one shader of each type present in the program must 

+        declare a view count and all such declarations must match. If there is a 

+        missing or mismatched view count declaration, a link-time error results."

+    

+

+Modifications to Section 7.1 "Built-in Language Variables"

+    

+    Replace the following paragraph added by OVR_multiview

+        "Add the following to the list of built-in variables that are intrinsically

+        declared in the vertex and fragment shading languages:

+

+            in mediump uint gl_ViewID_OVR;"

+    with

+        "Add the following to the list of built-in variables that are intrinsically

+        declared in the vertex, tessellation control, tessellation evaluation 

+        geometry and fragment shading languages:

+

+            [[ If implemented in the OpenGL ES Shading Language ]]

+            in mediump uint gl_ViewID_OVR;

+            

+            [[ If implemented in the OpenGL Shading Language ]]

+            in uint gl_ViewID_OVR;"

+    

+

+Interactions with OVR_multiview2:

+

+    If OVR_multiview2 is supported the restriction from OVR_multiview that only

+    gl_Position is allowed to depend on gl_ViewID_OVR is also lifted from the 

+    tessellation control, tessellation evaluation, and geometry 

+    shaders.

+    

+    

+Issues

+

+    (1) This extension is based on an OVR extension, why call it EXT?

+    

+    While started as a single vendor extension, OVR_multiview and OVR_multiview2

+    are already supported by multiple vendors. This new extension also has the 

+    support from multiple vendors to be specified as EXT.

+    

+    (2) Should the functions and tokens introduced by OVR_multiview be renamed

+    to have EXT suffixes?

+    

+    No. While it is unusual to mix a vendor suffix with EXT in this "family" of

+    extensions, the main goal of this extension is to remove restrictions of 

+    OVR_multiview while keeping source code compatibiliy where possible. It is 

+    up to a successor of OVR_multiview to change the names (e.g. to revisit 

+    the unusual second underscore in gl_ViewID_OVR). The intent of this extension 

+    is to change the functionality while "inheriting" the names of the base 

+    multiview extension. 

+

+    (3) Are separable program objects with multiview allowed?

+    

+    Yes. Note that when using separable program objects, each program object 

+    can have its own multiview view count declared with the "num_views" layout 

+    qualfiier. When using separable programs, a draw-time error will occur if 

+    the view count for the programs used by the vertex, tessellation control,

+    tessellation evaluation, and geometry stages don't match.

+    

+Revision History

+

+      Rev.    Date    Author    Changes

+      ----  --------  --------  -----------------------------------------

+        1   05/13/19  rmenzel   Initial version.

diff --git a/extensions/EXT/EXT_multiview_texture_multisample.txt b/extensions/EXT/EXT_multiview_texture_multisample.txt
new file mode 100644
index 0000000..defdf6d
--- /dev/null
+++ b/extensions/EXT/EXT_multiview_texture_multisample.txt
@@ -0,0 +1,171 @@
+Name

+

+    EXT_multiview_texture_multisample

+

+Name Strings

+

+    GL_EXT_multiview_texture_multisample

+

+Contact

+

+    Robert Menzel, NVIDIA Corporation (rmenzel 'at' nvidia.com)

+

+Contributors

+

+    Pat Brown, NVIDIA Corporation

+    James Helferty, NVIDIA Corporation

+    Kedarnath Thangudu, NVIDIA Corporation

+

+Status

+

+    Complete.

+

+Version

+

+    Last Modified Date:  May 13, 2019

+    Author Revision: 1

+

+Number

+

+    OpenGL Extension #537

+    OpenGL ES Extension #318

+

+Dependencies

+

+    OpenGL 4.0 or OpenGL ES 3.2 are required.

+

+    This extension is written against the OpenGL 4.6 specification

+    (Core Profile) (February 2, 2019) and OpenGL ES 3.2 specification

+    (February 2, 2019).

+

+    OVR_multiview is required.

+

+Overview

+

+    OVR_multiview introduced multiview rendering to OpenGL and OpenGL ES.

+    

+    This extension removes one of the limitations of the OVR_multiview 

+    extension by allowing the use of multisample textures during multiview rendering.

+    

+    This is one of two extensions that allow multisampling when using 

+    OVR_multiview. Each supports one of the two different approaches to 

+    multisampling in OpenGL and OpenGL ES:

+    

+        Core OpenGL and OpenGL ES 3.1+ have explicit support for multisample 

+        texture types, such as TEXTURE_2D_MULTISAMPLE. Applications can access 

+        the values of individual samples and can explicitly "resolve" the 

+        samples of each pixel down to a single color.

+        

+        The extension EXT_multisampled_render_to_texture provides support for 

+        multisampled rendering to non-multisample texture types, such as 

+        TEXTURE_2D. The individual samples for each pixel are maintained 

+        internally by the implementation and can not be accessed directly 

+        by applications. These samples are eventually resolved implicitly to 

+        a single color for each pixel.

+        

+    This extension supports the first multisampling style with multiview 

+    rendering; the OVR_multiview_multisampled_render_to_texture extension 

+    supports the second style. Note that support for one of these multiview 

+    extensions does not imply support for the other.

+    

+    

+New Tokens

+

+    None.

+

+    

+New Procedures and Functions

+

+    None.

+    

+    

+Modifications to Chapter 9 of the OpenGL ES 3.2 Specification as well as

+Chapter 9 of the OpenGL 4.6 Specification (Framebuffers and Framebuffer 

+Objects) 

+    

+Modifications to all sections added and/or modified by OVR_multiview

+

+    Where OVR_multiview references a "two-dimensional array texture", replace 

+    this with "two-dimensional array texture or two-dimensional multisample 

+    array texture" to explicitly allow rendering to multisampled textures.

+    

+    The following is an explicit list of these changes:

+    

+    In subsection 9.2.2.2 (introduced by OVR_multiview) replace

+        "Finally, multiple layers of two-dimensional array textures can be

+        attached to an attachment point."

+    with

+        "Finally, multiple layers of two-dimensional array textures or 

+        two-dimensional multisample array textures can be

+        attached to an attachment point."

+    

+    In the additions to section 9.2.3 (Framebuffer Object Queries) replace

+        "If <pname> is FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR and the value

+        of FRAMEBUFFER_ATTACHMENT_OBJECT_NAME is a two-dimensional array texture..."

+    with

+        "If <pname> is FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR and the value

+        of FRAMEBUFFER_ATTACHMENT_OBJECT_NAME is a two-dimensional array texture

+        or a two-dimensional multisample array texture..."

+    

+    Also replace

+        "If <pname> is FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR and the

+        value of FRAMEBUFFER_ATTACHMENT_OBJECT_NAME is a two-dimensional array

+        texture..."

+    with

+        "If <pname> is FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR and the

+        value of FRAMEBUFFER_ATTACHMENT_OBJECT_NAME is a two-dimensional array

+        texture or a two-dimensional multisample array texture..."

+    

+    In the addition to the end of section 9.2.8 (Attaching Textures to a Framebuffer)

+    replace

+        "Multiple layers of a two-dimensional array texture can be

+        attached as one of the logical buffers of a framebuffer object with the

+        commands"

+    with

+        "Multiple layers of a two-dimensional array texture or a two-dimensional 

+        multisample array texture can be

+        attached as one of the logical buffers of a framebuffer object with the

+        commands"

+    

+    Later in that section under "Errors" replace

+        "An INVALID_VALUE error is generated if:

+        - <texture> is a two-dimensional array texture and <baseViewIndex> +

+          <numViews> is larger than the value of MAX_ARRAY_TEXTURE_LAYERS."

+    with

+        "An INVALID_VALUE error is generated if:

+        - <texture> is a two-dimensional array texture or a two-dimensional 

+        multisample array texture and <baseViewIndex> +

+          <numViews> is larger than the value of MAX_ARRAY_TEXTURE_LAYERS."

+    

+    Also replace

+        "An INVALID_OPERATION error is generated if texture is non-zero and is not

+        the name of a two-dimensional array texture."

+    with

+        "An INVALID_OPERATION error is generated if texture is non-zero and is not

+        the name of a two-dimensional array texture or a two-dimensional 

+        multisample array texture."

+      

+    

+Issues

+

+    (1) This extension is based on an OVR extension, why call it EXT?

+    

+    While started as a single vendor extension, OVR_multiview and OVR_multiview2

+    are already supported by multiple vendors. This new extension also has the 

+    support from multiple vendors to be specified as EXT.

+    

+    (2) Can this extension be used together with 

+    OVR_multiview_multisampled_render_to_texture if both are supported?

+    

+    The two extensions can be used together in the same application, but not in 

+    the same framebuffer. OVR_multiview_multisampled_render_to_texture is based 

+    on EXT_multisampled_render_to_texture, which explicitly does not permit a 

+    single framebuffer to contain explicit multisample texture types (from 

+    OpenGL ES 3.1 and core OpenGL) and "multisampled" bindings of non-multisample 

+    texture types.

+    

+Revision History

+

+      Rev.    Date    Author    Changes

+      ----  --------  --------  -----------------------------------------

+        1   05/13/19  rmenzel   Initial version.

diff --git a/extensions/EXT/EXT_multiview_timer_query.txt b/extensions/EXT/EXT_multiview_timer_query.txt
new file mode 100644
index 0000000..50913cb
--- /dev/null
+++ b/extensions/EXT/EXT_multiview_timer_query.txt
@@ -0,0 +1,99 @@
+Name

+

+    EXT_multiview_timer_query

+

+Name Strings

+

+    GL_EXT_multiview_timer_query

+

+Contact

+

+    Robert Menzel, NVIDIA Corporation (rmenzel 'at' nvidia.com)

+

+Contributors

+

+    Pat Brown, NVIDIA Corporation

+    James Helferty, NVIDIA Corporation

+    Kedarnath Thangudu, NVIDIA Corporation

+

+Status

+

+    Complete.

+

+Version

+

+    Last Modified Date:  May 13, 2019

+    Author Revision: 1

+

+Number

+

+    OpenGL Extension #536

+    OpenGL ES Extension #317

+

+Dependencies

+

+    OpenGL 4.0 or OpenGL ES 3.2 are required.

+

+    This extension is written against the OpenGL 4.6 specification

+    (Core Profile) (February 2, 2019) and OpenGL ES 3.2 specification

+    (February 2, 2019).

+

+    OVR_multiview is required.

+

+Overview

+

+    OVR_multiview introduced multiview rendering to OpenGL and OpenGL ES.

+    This extension removes one of the limitations of the OVR_multiview 

+    extension by allowing the use of timer queries during multiview rendering. 

+    OVR_multiview does not specify defined behavior for such usage

+    (if implemented in OpenGL or if EXT_disjoint_timer_query is present).

+    

+    

+New Tokens

+

+    None.

+

+    

+New Procedures and Functions

+

+    None.

+    

+    

+Modifications to Chapter 4 of the OpenGL 4.6 Specification (Event Model)

+

+    Remove the following error from section 4.3 (Time Queries) which has

+    been added by OVR_multiview:

+    

+    "Queries where BeginQuery or EndQuery is called with a target of

+    TIME_ELAPSED, or a if QueryCounter is called with a target of TIMESTAMP

+    return undefined values if the draw framebuffer is multiview at any

+    point during their execution."

+    

+    

+Modifications to Chapter 9 of the OpenGL ES 3.2 Specification as well as

+Chapter 9 of the OpenGL 4.6 Specification (Framebuffers and Framebuffer 

+Objects) 

+    

+    Modify the subsection 9.2.2.2 (Multiview Images) which has been added by 

+    OVR_multiview:

+    

+    Remove from the list of restrictions ("In this mode there are several 

+    restrictions:") the following item:

+

+    "- no timer queries (section 4.3)".

+      

+    

+Issues

+

+    (1) This extension is based on an OVR extension, why call it EXT?

+    

+    While started as a single vendor extension, OVR_multiview and OVR_multiview2

+    are already supported by multiple vendors. This new extension also has the 

+    support from multiple vendors to be specified as EXT.

+    

+    

+Revision History

+

+      Rev.    Date    Author    Changes

+      ----  --------  --------  -----------------------------------------

+        1   05/13/19  rmenzel   Initial version.

diff --git a/extensions/EXT/EXT_texture_shadow_lod.txt b/extensions/EXT/EXT_texture_shadow_lod.txt
new file mode 100644
index 0000000..c03a3cb
--- /dev/null
+++ b/extensions/EXT/EXT_texture_shadow_lod.txt
@@ -0,0 +1,158 @@
+Name
+
+    EXT_texture_shadow_lod
+
+Name Strings
+
+    GL_EXT_texture_shadow_lod
+
+Contact
+
+    Billy Clack, NVIDIA Corporation (bclack 'at' nvidia.com)
+
+Contributors
+
+    Ashwin Lele, NVIDIA Corporation 
+    Daniel Koch, NVIDIA Corporation 
+    Graeme Leese, Broadcom Corporation
+    Pyarelal Knowles, NVIDIA Corporation 
+    Sugar Ghuge, Intel Corporation
+    Mark Janes, Intel Corporation
+
+Status
+
+    Complete.
+
+Version
+
+    Last Modified Date: May 24, 2019
+    Revision:   1
+
+Number
+
+    OpenGL Extension #539
+    OpenGL ES Extension #320
+
+Dependencies
+
+    OpenGL 2.0 or OpenGL ES 3.0 is required.
+
+    This extension is written against the OpenGL Shading Language
+    Specification, version 4.60.5 dated July 14, 2018.
+    
+    The same shading language modifications should also be applied to the
+    OpenGL ES Shading Language Specification, version 3.20.4 under the
+    corresponding sections.
+
+    This extension interacts with ARB_texture_cube_map_array and OpenGL 4.0.
+
+    This extension interacts with OES_texture_cube_map_array and OpenGL ES 3.2.
+
+    This extension interacts with EXT_texture_cube_map_array and OpenGL ES 3.2.
+
+    This extension requires EXT_gpu_shader4 or equivalent functionality.
+
+Overview
+
+    This extension adds support for various shadow sampler types with texture
+    functions having interactions with the LOD of texture lookups.  Modern
+    shading languages support LOD queries for shadow sampler types, but until
+    now the OpenGL Shading Language Specification has excluded multiple texture
+    function overloads involving LOD calculations with various shadow samplers.
+    Shading languages for other APIs do support the equivalent LOD-based
+    texture sampling functions for these types which has made porting between
+    those shading languages to GLSL cumbersome and has required the usage of
+    sub-optimal workarounds.
+
+New Procedures and Functions
+
+    None
+
+New Tokens
+
+    None
+
+Modification to the OpenGL Shading Language Specification, Version 4.60.5
+
+    Including the following line in a shader can be used to control
+    the language features described in this extension:
+
+      #extension GL_EXT_texture_shadow_lod : <behavior>
+
+    where <behavior> is specified in section 3.3.
+
+    New preprocessor #defines are added to the OpenGL Shading Language:
+
+      #define GL_EXT_texture_shadow_lod         1
+
+
+    Add to section 8.9.2 "Texel Lookup Functions" (p. 170):
+
+    (Add variants of the texture lookup functions with supplied bias p. 170)
+
+    float texture(sampler2DArrayShadow sampler, vec4 P [, float bias])
+    float texture(samplerCubeArrayShadow sampler, vec4 P, float compare [, float bias])
+
+
+    (Add variant of the texture lookup function with supplied offset and optional supplied bias p. 170)
+
+    float textureOffset(sampler2DArrayShadow sampler, vec4 P, ivec2 offset [, float bias])
+
+
+    (Add new functions to the set of allowed texture LOD lookup functions p. 170)
+
+    float textureLod(sampler2DArrayShadow sampler, vec4 P, float lod)
+    float textureLod(samplerCubeShadow sampler, vec4 P, float lod)
+    float textureLod(samplerCubeArrayShadow sampler, vec4 P, float compare, float lod)
+    float textureLodOffset(sampler2DArrayShadow sampler, vec4 P, float lod, ivec2 offset)
+
+Dependencies on ARB_texture_cube_map_array and OpenGL 4.0
+
+    If neither ARB_texture_cube_map_array nor OpenGL 4.0 are supported for
+    OpenGL contexts, ignore references to samplerCubeArrayShadow.
+
+Dependencies on OES_texture_cube_map_array, EXT_texture_cube_map_array and OpenGL ES 3.2
+
+    If neither OES_texture_cube_map_array, EXT_texture_cube_map_array, nor OpenGL ES 3.2 are supported for
+    OpenGL ES contexts, ignore references to samplerCubeArrayShadow.
+
+Issues
+
+    (1)  Are there any other texture function and sampler combinations that are
+         missing from the specifications that might be valid combinations?
+
+         RESOLVED: Yes, as of GLSL 4.60.5 and ESSL 3.20.4, there are other
+         missing texture functions and sampler combinations that might be valid
+         but this extension does not add support for.
+
+         There is no support for Cube samplers and textureOffset family of
+         functions, and no support for Array samplers with textureProj family
+         of functions.  This extension does not add support for these functions
+         since they are 1) not related to shadow samplers and thus outside the
+         scope of this extension, 2) not yet clear if these combinations should
+         be supported at all, and 3) if support should be added then each
+         family of missing functions is deserving of its own extension.
+
+         textureGrad() is missing support for samplerCubeArrayShadow in both
+         the GLSL and ESSL specifications, and is also missing support for
+         gsampler2DArray variants only in the ESSL specification.  The
+         samplerCubeArrayShadow variant is not included in this extension
+         because not all vendors can easily support the additional parameter
+         beyond the gradients.  The missing gsampler2DArray variants in ESSL
+         are not added because they are unrelated to shadow types and thus
+         outside the scope of this extension.
+
+    (2)  The GLSL specification already contains a definition for
+         textureOffset() with sampler2DArrayShadow; does this mean only the optional
+         bias variant of this function is needed?
+
+         RESOLVED:  Yes for GLSL, but the ESSL specification does
+         not have either the non-bias or bias variants of this function so both
+         variants should be defined according to this extension.
+
+Revision History
+
+    Revision 1
+    - Initial version.
+
+
diff --git a/extensions/esext.php b/extensions/esext.php
index 2f6c8a2..b61932d 100644
--- a/extensions/esext.php
+++ b/extensions/esext.php
@@ -657,4 +657,12 @@
 </li>
 <li value=316><a href="extensions/NV/NV_fragment_shader_barycentric.txt">GL_NV_fragment_shader_barycentric</a>
 </li>
+<li value=317><a href="extensions/EXT/EXT_multiview_timer_query.txt">GL_EXT_multiview_timer_query</a>
+</li>
+<li value=318><a href="extensions/EXT/EXT_multiview_texture_multisample.txt">GL_EXT_multiview_texture_multisample</a>
+</li>
+<li value=319><a href="extensions/EXT/EXT_multiview_tessellation_geometry_shader.txt">GL_EXT_multiview_tessellation_geometry_shader</a>
+</li>
+<li value=320><a href="extensions/EXT/EXT_texture_shadow_lod.txt">GL_EXT_texture_shadow_lod</a>
+</li>
 </ol>
diff --git a/extensions/glext.php b/extensions/glext.php
index b2c08fa..2fa2314 100644
--- a/extensions/glext.php
+++ b/extensions/glext.php
@@ -1001,12 +1001,20 @@
 </li>
 <li value=531><a href="extensions/NV/NV_shading_rate_image.txt">GL_NV_shading_rate_image</a>
 </li>
-<li value=592><a href="extensions/ATI/WGL_ATI_render_texture_rectangle.txt">WGL_ATI_render_texture_rectangle</a>
+<li value=532><a href="extensions/ATI/WGL_ATI_render_texture_rectangle.txt">WGL_ATI_render_texture_rectangle</a>
 </li>
-<li value=593><a href="extensions/NV/NV_vdpau_interop2.txt">GL_NV_vdpau_interop2</a>
+<li value=533><a href="extensions/NV/NV_vdpau_interop2.txt">GL_NV_vdpau_interop2</a>
 </li>
-<li value=594><a href="extensions/EXT/EXT_texture_sRGB_R8.txt">GL_EXT_texture_sRGB_R8</a>
+<li value=534><a href="extensions/EXT/EXT_texture_sRGB_R8.txt">GL_EXT_texture_sRGB_R8</a>
 </li>
-<li value=595><a href="extensions/EXT/GLX_EXT_context_priority.txt">GLX_EXT_context_priority</a>
+<li value=535><a href="extensions/EXT/GLX_EXT_context_priority.txt">GLX_EXT_context_priority</a>
+</li>
+<li value=536><a href="extensions/EXT/EXT_multiview_timer_query.txt">GL_EXT_multiview_timer_query</a>
+</li>
+<li value=537><a href="extensions/EXT/EXT_multiview_texture_multisample.txt">GL_EXT_multiview_texture_multisample</a>
+</li>
+<li value=538><a href="extensions/EXT/EXT_multiview_tessellation_geometry_shader.txt">GL_EXT_multiview_tessellation_geometry_shader</a>
+</li>
+<li value=539><a href="extensions/EXT/EXT_texture_shadow_lod.txt">GL_EXT_texture_shadow_lod</a>
 </li>
 </ol>
diff --git a/extensions/registry.py b/extensions/registry.py
index a058a71..8b6b229 100644
--- a/extensions/registry.py
+++ b/extensions/registry.py
@@ -2006,6 +2006,27 @@
         'flags' : { 'public' },
         'url' : 'extensions/EXT/EXT_multiview_draw_buffers.txt',
     },
+    'GL_EXT_multiview_tessellation_geometry_shader' : {
+        'number' : 538,
+        'esnumber' : 319,
+        'flags' : { 'public' },
+        'supporters' : { 'NVIDIA' },
+        'url' : 'extensions/EXT/EXT_multiview_tessellation_geometry_shader.txt',
+    },
+    'GL_EXT_multiview_texture_multisample' : {
+        'number' : 537,
+        'esnumber' : 318,
+        'flags' : { 'public' },
+        'supporters' : { 'NVIDIA' },
+        'url' : 'extensions/EXT/EXT_multiview_texture_multisample.txt',
+    },
+    'GL_EXT_multiview_timer_query' : {
+        'number' : 536,
+        'esnumber' : 317,
+        'flags' : { 'public' },
+        'supporters' : { 'NVIDIA' },
+        'url' : 'extensions/EXT/EXT_multiview_timer_query.txt',
+    },
     'GLU_EXT_nurbs_tessellator' : {
         'number' : 100,
         'flags' : { 'public' },
@@ -2529,6 +2550,13 @@
         'supporters' : { 'APPLE', 'CodeWeavers', 'NVIDIA', 'TransGaming' },
         'url' : 'extensions/EXT/EXT_texture_sRGB_decode.txt',
     },
+    'GL_EXT_texture_shadow_lod' : {
+        'number' : 539,
+        'esnumber' : 320,
+        'flags' : { 'public' },
+        'supporters' : { 'NVIDIA' },
+        'url' : 'extensions/EXT/EXT_texture_shadow_lod.txt',
+    },
     'GL_EXT_texture_shared_exponent' : {
         'number' : 333,
         'flags' : { 'public' },
diff --git a/xml/gl.xml b/xml/gl.xml
index c03b373..d74dbdc 100644
--- a/xml/gl.xml
+++ b/xml/gl.xml
@@ -82,6 +82,403 @@
     <!-- SECTION: GL parameter class type definitions. -->
 
     <groups>
+        <group name="TextureNormalModeEXT">
+            <enum name="PERTURB_EXT"/>
+        </group>
+
+        <group name="LightTexturePNameEXT">
+            <enum name="ATTENUATION_EXT"/>
+            <enum name="SHADOW_ATTENUATION_EXT"/>
+        </group>
+
+        <group name="VertexShaderCoordOutEXT">
+            <enum name="X_EXT"/>
+            <enum name="Y_EXT"/>
+            <enum name="Z_EXT"/>
+            <enum name="W_EXT"/>
+            <enum name="NEGATIVE_X_EXT"/>
+            <enum name="NEGATIVE_Y_EXT"/>
+            <enum name="NEGATIVE_Z_EXT"/>
+            <enum name="NEGATIVE_W_EXT"/>
+            <enum name="ZERO_EXT"/>
+            <enum name="ONE_EXT"/>
+            <enum name="NEGATIVE_ONE_EXT"/>
+        </group>
+
+        <group name="SamplePatternEXT">
+            <enum name="1PASS_EXT"/>
+            <enum name="2PASS_0_EXT"/>
+            <enum name="2PASS_1_EXT"/>
+            <enum name="4PASS_0_EXT"/>
+            <enum name="4PASS_1_EXT"/>
+            <enum name="4PASS_2_EXT"/>
+            <enum name="4PASS_3_EXT"/>
+        </group>
+
+        <group name="VertexShaderStorageTypeEXT">
+            <enum name="VARIANT_EXT"/>
+            <enum name="INVARIANT_EXT"/>
+            <enum name="LOCAL_CONSTANT_EXT"/>
+            <enum name="LOCAL_EXT"/>
+        </group>
+
+        <group name="VertexShaderParameterEXT">
+            <enum name="CURRENT_VERTEX_EXT"/>
+            <enum name="MVP_MATRIX_EXT"/>
+        </group>
+
+        <group name="LightTextureModeEXT">
+            <enum name="FRAGMENT_MATERIAL_EXT"/>
+            <enum name="FRAGMENT_NORMAL_EXT"/>
+            <enum name="FRAGMENT_DEPTH_EXT"/>
+            <enum name="FRAGMENT_COLOR_EXT"/>
+        </group>
+
+        <group name="VertexShaderOpEXT">
+            <enum name="OP_INDEX_EXT"/>
+            <enum name="OP_NEGATE_EXT"/>
+            <enum name="OP_DOT3_EXT"/>
+            <enum name="OP_DOT4_EXT"/>
+            <enum name="OP_MUL_EXT"/>
+            <enum name="OP_ADD_EXT"/>
+            <enum name="OP_MADD_EXT"/>
+            <enum name="OP_FRAC_EXT"/>
+            <enum name="OP_MAX_EXT"/>
+            <enum name="OP_MIN_EXT"/>
+            <enum name="OP_SET_GE_EXT"/>
+            <enum name="OP_SET_LT_EXT"/>
+            <enum name="OP_CLAMP_EXT"/>
+            <enum name="OP_FLOOR_EXT"/>
+            <enum name="OP_ROUND_EXT"/>
+            <enum name="OP_EXP_BASE_2_EXT"/>
+            <enum name="OP_LOG_BASE_2_EXT"/>
+            <enum name="OP_POWER_EXT"/>
+            <enum name="OP_RECIP_EXT"/>
+            <enum name="OP_RECIP_SQRT_EXT"/>
+            <enum name="OP_SUB_EXT"/>
+            <enum name="OP_CROSS_PRODUCT_EXT"/>
+            <enum name="OP_MULTIPLY_MATRIX_EXT"/>
+            <enum name="OP_MOV_EXT"/>
+        </group>
+
+        <group name="ProgramFormatARB">
+            <enum name="PROGRAM_FORMAT_ASCII_ARB"/>
+        </group>
+
+        <group name="PointParameterNameARB">
+            <enum name="GL_POINT_SIZE_MIN_EXT"/>
+            <enum name="GL_POINT_SIZE_MAX_EXT"/>
+            <enum name="GL_POINT_FADE_THRESHOLD_SIZE_EXT"/>
+        </group>
+
+        <group name="VertexAttribPropertyARB">
+            <enum name="VERTEX_ATTRIB_ARRAY_INTEGER_EXT"/>
+        </group>
+
+        <group name="VertexAttribPointerPropertyARB">
+            <enum name="VERTEX_ATTRIB_ARRAY_POINTER_ARB"/>
+        </group>
+
+        <group name="ProgramStringPropertyARB">
+            <enum name="PROGRAM_STRING_ARB"/>
+        </group>
+
+        <group name="BufferPointerNameARB">
+            <enum name="BUFFER_MAP_POINTER_ARB"/>
+        </group>
+
+        <group name="BufferPNameARB">
+            <enum name="BUFFER_SIZE_ARB"/>
+            <enum name="BUFFER_USAGE_ARB"/>
+            <enum name="BUFFER_ACCESS_ARB"/>
+            <enum name="BUFFER_MAPPED_ARB"/>
+        </group>
+
+        <group name="ClampColorModeARB">
+            <enum name="FIXED_ONLY_ARB"/>
+            <enum name="FALSE"/>
+            <enum name="TRUE"/>
+        </group>
+
+        <group name="ClampColorTargetARB">
+            <enum name="CLAMP_VERTEX_COLOR_ARB"/>
+            <enum name="CLAMP_FRAGMENT_COLOR_ARB"/>
+            <enum name="CLAMP_READ_COLOR_ARB"/>
+        </group>
+
+        <group name="ProgramTargetARB">
+            <enum name="TEXT_FRAGMENT_SHADER_ATI"/>
+        </group>
+
+        <group name="VertexArrayPNameAPPLE">
+            <enum name="STORAGE_CLIENT_APPLE"/>
+            <enum name="STORAGE_CACHED_APPLE"/>
+            <enum name="STORAGE_SHARED_APPLE"/>
+        </group>
+
+        <group name="ObjectTypeAPPLE">
+            <enum name="DRAW_PIXELS_APPLE"/>
+            <enum name="FENCE_APPLE"/>
+        </group>
+
+        <group name="PreserveModeATI">
+            <enum name="PRESERVE_ATI"/>
+            <enum name="DISCARD_ATI"/>
+        </group>
+
+        <group name="TexBumpParameterATI">
+            <enum name="BUMP_ROT_MATRIX_ATI"/>
+        </group>
+
+        <group name="SwizzleOpATI">
+            <enum name="SWIZZLE_STR_ATI"/>
+            <enum name="SWIZZLE_STQ_ATI"/>
+            <enum name="SWIZZLE_STR_DR_ATI"/>
+            <enum name="SWIZZLE_STQ_DQ_ATI"/>
+        </group>
+
+        <group name="PNTrianglesPNameATI">
+            <enum name="PN_TRIANGLES_POINT_MODE_ATI"/>
+            <enum name="PN_TRIANGLES_NORMAL_MODE_ATI"/>
+            <enum name="PN_TRIANGLES_TESSELATION_LEVEL_ATI"/>
+        </group>
+
+        <group name="ArrayObjectUsageATI">
+            <enum name="STATIC_ATI"/>
+            <enum name="DYNAMIC_ATI"/>
+        </group>
+
+        <group name="GetTexBumpParameterATI">
+            <enum name="BUMP_ROT_MATRIX_ATI"/>
+            <enum name="BUMP_ROT_MATRIX_SIZE_ATI"/>
+            <enum name="BUMP_NUM_TEX_UNITS_ATI"/>
+            <enum name="BUMP_TEX_UNITS_ATI"/>
+        </group>
+
+        <group name="ArrayObjectPNameATI">
+            <enum name="OBJECT_BUFFER_SIZE_ATI"/>
+            <enum name="OBJECT_BUFFER_USAGE_ATI"/>
+        </group>
+
+        <group name="DrawBufferModeATI">
+            <enum name="COLOR_ATTACHMENT0_NV"/>
+            <enum name="COLOR_ATTACHMENT1_NV"/>
+            <enum name="COLOR_ATTACHMENT2_NV"/>
+            <enum name="COLOR_ATTACHMENT3_NV"/>
+            <enum name="COLOR_ATTACHMENT4_NV"/>
+            <enum name="COLOR_ATTACHMENT5_NV"/>
+            <enum name="COLOR_ATTACHMENT6_NV"/>
+            <enum name="COLOR_ATTACHMENT7_NV"/>
+            <enum name="COLOR_ATTACHMENT8_NV"/>
+            <enum name="COLOR_ATTACHMENT9_NV"/>
+            <enum name="COLOR_ATTACHMENT10_NV"/>
+            <enum name="COLOR_ATTACHMENT11_NV"/>
+            <enum name="COLOR_ATTACHMENT12_NV"/>
+            <enum name="COLOR_ATTACHMENT13_NV"/>
+            <enum name="COLOR_ATTACHMENT14_NV"/>
+            <enum name="COLOR_ATTACHMENT15_NV"/>
+        </group>
+
+        <group name="VertexStreamATI">
+            <enum name="VERTEX_STREAM0_ATI"/>
+            <enum name="VERTEX_STREAM1_ATI"/>
+            <enum name="VERTEX_STREAM2_ATI"/>
+            <enum name="VERTEX_STREAM3_ATI"/>
+            <enum name="VERTEX_STREAM4_ATI"/>
+            <enum name="VERTEX_STREAM5_ATI"/>
+            <enum name="VERTEX_STREAM6_ATI"/>
+            <enum name="VERTEX_STREAM7_ATI"/>
+        </group>
+
+        <group name="SpriteParameterNameSGIX">
+            <enum name="SPRITE_MODE_SGIX"/>
+        </group>
+
+        <group name="PixelTexGenModeSGIX">
+            <enum name="PIXEL_TEX_GEN_Q_CEILING_SGIX"/>
+            <enum name="PIXEL_TEX_GEN_Q_FLOOR_SGIX"/>
+            <enum name="PIXEL_TEX_GEN_Q_ROUND_SGIX"/>
+            <enum name="PIXEL_TEX_GEN_ALPHA_LS_SGIX"/>
+            <enum name="PIXEL_TEX_GEN_ALPHA_MS_SGIX"/>
+        </group>
+
+        <group name="IglooFunctionSelectSGIX">
+            <enum name="IGLOO_FULLSCREEN_SGIX"/>
+            <enum name="IGLOO_VIEWPORT_OFFSET_SGIX"/>
+            <enum name="IGLOO_SWAPTMESH_SGIX"/>
+            <enum name="IGLOO_COLORNORMAL_SGIX"/>
+            <enum name="IGLOO_IRISGL_MODE_SGIX"/>
+            <enum name="IGLOO_LMC_COLOR_SGIX"/>
+            <enum name="IGLOO_TMESHMODE_SGIX"/>
+        </group>
+
+        <group name="HintTargetPGI">
+            <enum name="VERTEX_DATA_HINT_PGI"/>
+            <enum name="VERTEX_CONSISTENT_HINT_PGI"/>
+            <enum name="MATERIAL_SIDE_HINT_PGI"/>
+            <enum name="MAX_VERTEX_HINT_PGI"/>
+        </group>
+
+        <group name="ImageTransformPNameHP">
+            <enum name="IMAGE_SCALE_X_HP"/>
+            <enum name="IMAGE_SCALE_Y_HP"/>
+            <enum name="IMAGE_TRANSLATE_X_HP"/>
+            <enum name="IMAGE_TRANSLATE_Y_HP"/>
+            <enum name="IMAGE_ROTATE_ANGLE_HP"/>
+            <enum name="IMAGE_ROTATE_ORIGIN_X_HP"/>
+            <enum name="IMAGE_ROTATE_ORIGIN_Y_HP"/>
+            <enum name="IMAGE_MAG_FILTER_HP"/>
+            <enum name="IMAGE_MIN_FILTER_HP"/>
+            <enum name="IMAGE_CUBIC_WEIGHT_HP"/>
+        </group>
+
+        <group name="ImageTransformTargetHP">
+            <enum name="IMAGE_TRANSFORM_2D_HP"/>
+        </group>
+
+        <group name="TextureFilterSGIS">
+            <enum name="FILTER4_SGIS"/>
+        </group>
+
+        <group name="OcclusionQueryParameterNameNV">
+            <enum name="PIXEL_COUNT_NV"/>
+            <enum name="PIXEL_COUNT_AVAILABLE_NV"/>
+        </group>
+
+        <group name="GetMultisamplePNameNV">
+            <enum name="SAMPLE_LOCATION_ARB"/>
+            <enum name="PROGRAMMABLE_SAMPLE_LOCATION_ARB"/>
+        </group>
+
+        <group name="MapParameterNV">
+            <enum name="MAP_TESSELLATION_NV"/>
+        </group>
+
+        <group name="MapAttribParameterNV">
+            <enum name="MAP_ATTRIB_U_ORDER_NV"/>
+            <enum name="MAP_ATTRIB_V_ORDER_NV"/>
+        </group>
+
+        <group name="FenceParameterNameNV">
+            <enum name="FENCE_STATUS_NV"/>
+            <enum name="FENCE_CONDITION_NV"/>
+        </group>
+
+        <group name="CombinerParameterNV">
+            <enum name="COMBINER_INPUT_NV"/>
+            <enum name="COMBINER_MAPPING_NV"/>
+            <enum name="COMBINER_COMPONENT_USAGE_NV"/>
+        </group>
+
+        <group name="CombinerBiasNV">
+            <enum name="NONE"/>
+            <enum name="BIAS_BY_NEGATIVE_ONE_HALF_NV"/>
+        </group>
+
+        <group name="CombinerScaleNV">
+            <enum name="NONE"/>
+            <enum name="SCALE_BY_TWO_NV"/>
+            <enum name="SCALE_BY_FOUR_NV"/>
+            <enum name="SCALE_BY_ONE_HALF_NV"/>
+        </group>
+
+        <group name="CombinerMappingNV">
+            <enum name="UNSIGNED_IDENTITY_NV"/>
+            <enum name="UNSIGNED_INVERT_NV"/>
+            <enum name="EXPAND_NORMAL_NV"/>
+            <enum name="EXPAND_NEGATE_NV"/>
+            <enum name="HALF_BIAS_NORMAL_NV"/>
+            <enum name="HALF_BIAS_NEGATE_NV"/>
+            <enum name="SIGNED_IDENTITY_NV"/>
+            <enum name="SIGNED_NEGATE_NV"/>
+        </group>
+
+        <group name="CombinerRegisterNV">
+            <enum name="DISCARD_NV"/>
+            <enum name="PRIMARY_COLOR_NV"/>
+            <enum name="SECONDARY_COLOR_NV"/>
+            <enum name="SPARE0_NV"/>
+            <enum name="SPARE1_NV"/>
+            <enum name="TEXTURE0_ARB"/>
+            <enum name="TEXTURE1_ARB"/>
+        </group>
+
+        <group name="CombinerVariableNV">
+            <enum name="VARIABLE_A_NV"/>
+            <enum name="VARIABLE_B_NV"/>
+            <enum name="VARIABLE_C_NV"/>
+            <enum name="VARIABLE_D_NV"/>
+            <enum name="VARIABLE_E_NV"/>
+            <enum name="VARIABLE_F_NV"/>
+            <enum name="VARIABLE_G_NV"/>
+        </group>
+
+        <group name="PixelDataRangeTargetNV">
+            <enum name="WRITE_PIXEL_DATA_RANGE_NV"/>
+            <enum name="READ_PIXEL_DATA_RANGE_NV"/>
+        </group>
+
+        <group name="EvalTargetNV">
+            <enum name="EVAL_2D_NV"/>
+            <enum name="EVAL_TRIANGULAR_2D_NV"/>
+        </group>
+
+        <group name="VertexAttribEnumNV">
+            <enum name="PROGRAM_PARAMETER_NV"/>
+        </group>
+
+        <group name="FenceConditionNV">
+            <enum name="ALL_COMPLETED_NV"/>
+        </group>
+
+        <group name="PathCoordType">
+            <enum name="CLOSE_PATH_NV"/>
+            <enum name="MOVE_TO_NV"/>
+            <enum name="RELATIVE_MOVE_TO_NV"/>
+            <enum name="LINE_TO_NV"/>
+            <enum name="RELATIVE_LINE_TO_NV"/>
+            <enum name="HORIZONTAL_LINE_TO_NV"/>
+            <enum name="RELATIVE_HORIZONTAL_LINE_TO_NV"/>
+            <enum name="VERTICAL_LINE_TO_NV"/>
+            <enum name="RELATIVE_VERTICAL_LINE_TO_NV"/>
+            <enum name="QUADRATIC_CURVE_TO_NV"/>
+            <enum name="RELATIVE_QUADRATIC_CURVE_TO_NV"/>
+            <enum name="CUBIC_CURVE_TO_NV"/>
+            <enum name="RELATIVE_CUBIC_CURVE_TO_NV"/>
+            <enum name="SMOOTH_QUADRATIC_CURVE_TO_NV"/>
+            <enum name="RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV"/>
+            <enum name="SMOOTH_CUBIC_CURVE_TO_NV"/>
+            <enum name="RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV"/>
+            <enum name="SMALL_CCW_ARC_TO_NV"/>
+            <enum name="RELATIVE_SMALL_CCW_ARC_TO_NV"/>
+            <enum name="SMALL_CW_ARC_TO_NV"/>
+            <enum name="RELATIVE_SMALL_CW_ARC_TO_NV"/>
+            <enum name="LARGE_CCW_ARC_TO_NV"/>
+            <enum name="RELATIVE_LARGE_CCW_ARC_TO_NV"/>
+            <enum name="LARGE_CW_ARC_TO_NV"/>
+            <enum name="RELATIVE_LARGE_CW_ARC_TO_NV"/>
+            <enum name="CONIC_CURVE_TO_NV"/>
+            <enum name="RELATIVE_CONIC_CURVE_TO_NV"/>
+            <enum name="ROUNDED_RECT_NV"/>
+            <enum name="RELATIVE_ROUNDED_RECT_NV"/>
+            <enum name="ROUNDED_RECT2_NV"/>
+            <enum name="RELATIVE_ROUNDED_RECT2_NV"/>
+            <enum name="ROUNDED_RECT4_NV"/>
+            <enum name="RELATIVE_ROUNDED_RECT4_NV"/>
+            <enum name="ROUNDED_RECT8_NV"/>
+            <enum name="RELATIVE_ROUNDED_RECT8_NV"/>
+            <enum name="RESTART_PATH_NV"/>
+            <enum name="DUP_FIRST_CUBIC_CURVE_TO_NV"/>
+            <enum name="DUP_LAST_CUBIC_CURVE_TO_NV"/>
+            <enum name="RECT_NV"/>
+            <enum name="RELATIVE_RECT_NV"/>
+            <enum name="CIRCULAR_CCW_ARC_TO_NV"/>
+            <enum name="CIRCULAR_CW_ARC_TO_NV"/>
+            <enum name="CIRCULAR_TANGENT_ARC_TO_NV"/>
+            <enum name="ARC_TO_NV"/>
+            <enum name="RELATIVE_ARC_TO_NV"/>
+        </group>
+
         <group name="AccumOp">
             <enum name="GL_ACCUM"/>
             <enum name="GL_LOAD"/>
@@ -44646,6 +45043,9 @@
                 <command name="glGetIntegeri_vEXT"/>
             </require>
         </extension>
+        <extension name="GL_EXT_multiview_tessellation_geometry_shader" supported="gl|glcore|gles2"/>
+        <extension name="GL_EXT_multiview_texture_multisample" supported="gl|glcore|gles2"/>
+        <extension name="GL_EXT_multiview_timer_query" supported="gl|glcore|gles2"/>
         <extension name="GL_EXT_occlusion_query_boolean" supported="gles2">
             <require>
                 <enum name="GL_ANY_SAMPLES_PASSED_EXT"/>
@@ -50555,5 +50955,6 @@
                 <enum name="GL_FOG_SPECULAR_TEXTURE_WIN"/>
             </require>
         </extension>
+        <extension name="GL_EXT_texture_shadow_lod" supported="gl|glcore|gles2"/>
     </extensions>
 </registry>