[Piglit] [PATCH 1/2] registry: update gl.xml

Timothy Arceri tarceri at itsqueeze.com
Fri Aug 4 01:43:43 UTC 2017


This is the current registry file used in mesa.

Taken from commit 676834dd529d620ee25090e738d2607dfde003d8 of
https://github.com/KhronosGroup/OpenGL-Registry.git
---
 registry/gl.xml              | 2162 ++++++++++++++++++++++++++++++------------
 tests/util/piglit-dispatch.h |    2 +
 2 files changed, 1576 insertions(+), 588 deletions(-)

diff --git a/registry/gl.xml b/registry/gl.xml
index 3fc8863bf..353d0ef26 100644
--- a/registry/gl.xml
+++ b/registry/gl.xml
@@ -1,43 +1,34 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <registry>
     <comment>
-Copyright (c) 2013-2016 The Khronos Group Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and/or associated documentation files (the
-"Materials"), to deal in the Materials without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Materials, and to
-permit persons to whom the Materials are furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Materials.
-
-THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+Copyright (c) 2013-2017 The Khronos Group Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
 
 ------------------------------------------------------------------------
 
-This file, gl.xml, is the OpenGL and OpenGL API Registry. The older
-".spec" file format has been retired and will no longer be updated with
-new extensions and API versions. The canonical version of the registry,
-together with documentation, schema, and Python generator scripts used
-to generate C header files for OpenGL and OpenGL ES, can always be found
-in the Khronos Registry at
-        http://www.opengl.org/registry/
+This file, gl.xml, is the OpenGL and OpenGL API Registry. The canonical
+version of the registry, together with documentation, schema, and Python
+generator scripts used to generate C header files for OpenGL and OpenGL ES,
+can always be found in the Khronos Registry at
+        https://github.com/KhronosGroup/OpenGL-Registry
     </comment>
 
     <!-- SECTION: GL type definitions. -->
     <types>
             <!-- These are dependencies GL types require to be declared legally -->
         <type name="stddef">#include <stddef.h></type>
         <type name="khrplatform">#include <KHR/khrplatform.h></type>
         <type name="inttypes">#ifndef GLEXT_64_TYPES_DEFINED
 /* This code block is duplicated in glxext.h, so must be protected */
 #define GLEXT_64_TYPES_DEFINED
@@ -144,20 +135,21 @@ typedef unsigned int GLhandleARB;
             <!-- GLES 2 types (none currently) -->
             <!-- GLSC 2 types -->
         <type api="glsc2" requires="khrplatform">typedef khronos_uint8_t <name>GLubyte</name>;</type>
         <type api="glsc2" requires="khrplatform">typedef khronos_float_t <name>GLfloat</name>;</type>
         <type api="glsc2" requires="khrplatform">typedef khronos_intptr_t <name>GLintptr</name>;</type>
         <type api="glsc2" requires="khrplatform">typedef khronos_ssize_t <name>GLsizeiptr</name>;</type>
             <!-- Vendor extension types -->
         <type>typedef void (<apientry/> *<name>GLDEBUGPROCAMD</name>)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,void *userParam);</type>
         <type>typedef unsigned short <name>GLhalfNV</name>;</type>
         <type requires="GLintptr">typedef GLintptr <name>GLvdpauSurfaceNV</name>;</type>
+        <type>typedef void (<apientry/> *<name>GLVULKANPROCNV</name>)(void);</type>
     </types>
 
     <!-- SECTION: GL parameter class type definitions. -->
 
     <groups>
         <group name="AccumOp">
             <enum name="GL_ACCUM"/>
             <enum name="GL_LOAD"/>
             <enum name="GL_RETURN"/>
             <enum name="GL_MULT"/>
@@ -243,20 +235,55 @@ typedef unsigned int GLhandleARB;
             <enum name="GL_SRC_ALPHA"/>
             <enum name="GL_SRC_ALPHA_SATURATE"/>
             <enum name="GL_ZERO"/>
         </group>
 
         <group name="Boolean">
             <enum name="GL_FALSE"/>
             <enum name="GL_TRUE"/>
         </group>
 
+        <group name="BufferTargetARB">
+          <enum name="GL_ARRAY_BUFFER"/>
+          <enum name="GL_ATOMIC_COUNTER_BUFFER" />
+          <enum name="GL_COPY_READ_BUFFER" />
+          <enum name="GL_COPY_WRITE_BUFFER" />
+          <enum name="GL_DISPATCH_INDIRECT_BUFFER" />
+          <enum name="GL_DRAW_INDIRECT_BUFFER" />
+          <enum name="GL_ELEMENT_ARRAY_BUFFER" />
+          <enum name="GL_PIXEL_PACK_BUFFER" />
+          <enum name="GL_PIXEL_UNPACK_BUFFER" />
+          <enum name="GL_QUERY_BUFFER" />
+          <enum name="GL_SHADER_STORAGE_BUFFER" />
+          <enum name="GL_TEXTURE_BUFFER" />
+          <enum name="GL_TRANSFORM_FEEDBACK_BUFFER" />
+          <enum name="GL_UNIFORM_BUFFER" />
+        </group>
+
+        <group name="BufferUsageARB">
+          <enum name="GL_STREAM_DRAW"/>
+          <enum name="GL_STREAM_READ"/>
+          <enum name="GL_STREAM_COPY"/>
+          <enum name="GL_STATIC_DRAW"/>
+          <enum name="GL_STATIC_READ"/>
+          <enum name="GL_STATIC_COPY"/>
+          <enum name="GL_DYNAMIC_DRAW"/>
+          <enum name="GL_DYNAMIC_READ"/>
+          <enum name="GL_DYNAMIC_COPY"/>
+        </group>
+
+        <group name="BufferAccessARB">
+          <enum name="GL_READ_ONLY"/>
+          <enum name="GL_WRITE_ONLY"/>
+          <enum name="GL_READ_WRITE"/>
+        </group>
+
         <group name="ClearBufferMask">
             <enum name="GL_ACCUM_BUFFER_BIT"/>
             <enum name="GL_COLOR_BUFFER_BIT"/>
             <enum name="GL_COVERAGE_BUFFER_BIT_NV"/>
             <enum name="GL_DEPTH_BUFFER_BIT"/>
             <enum name="GL_STENCIL_BUFFER_BIT"/>
         </group>
 
         <group name="ClientAttribMask">
             <enum name="GL_CLIENT_ALL_ATTRIB_BITS"/>
@@ -394,20 +421,26 @@ typedef unsigned int GLhandleARB;
             <enum name="GL_FRONT"/>
             <enum name="GL_FRONT_AND_BACK"/>
             <enum name="GL_FRONT_LEFT"/>
             <enum name="GL_FRONT_RIGHT"/>
             <enum name="GL_LEFT"/>
             <enum name="GL_NONE"/>
             <enum name="GL_NONE_OES"/>
             <enum name="GL_RIGHT"/>
         </group>
 
+        <group name="DrawElementsType">
+            <enum name="GL_UNSIGNED_BYTE"/>
+            <enum name="GL_UNSIGNED_SHORT"/>
+            <enum name="GL_UNSIGNED_INT"/>
+        </group>
+
         <group name="EnableCap">
             <enum name="GL_ALPHA_TEST"/>
             <enum name="GL_ASYNC_DRAW_PIXELS_SGIX"/>
             <enum name="GL_ASYNC_HISTOGRAM_SGIX"/>
             <enum name="GL_ASYNC_READ_PIXELS_SGIX"/>
             <enum name="GL_ASYNC_TEX_IMAGE_SGIX"/>
             <enum name="GL_AUTO_NORMAL"/>
             <enum name="GL_BLEND"/>
             <enum name="GL_CALLIGRAPHIC_FRAGMENT_SGIX"/>
             <enum name="GL_CLIP_PLANE0"/>
@@ -519,20 +552,31 @@ typedef unsigned int GLhandleARB;
             <enum name="GL_INVALID_VALUE"/>
             <enum name="GL_NO_ERROR"/>
             <enum name="GL_OUT_OF_MEMORY"/>
             <enum name="GL_STACK_OVERFLOW"/>
             <enum name="GL_STACK_UNDERFLOW"/>
             <enum name="GL_TABLE_TOO_LARGE"/>
             <enum name="GL_TABLE_TOO_LARGE_EXT"/>
             <enum name="GL_TEXTURE_TOO_LARGE_EXT"/>
         </group>
 
+        <group name="ExternalHandleType">
+            <enum name="GL_HANDLE_TYPE_OPAQUE_FD_EXT"/>
+            <enum name="GL_HANDLE_TYPE_OPAQUE_WIN32_EXT"/>
+            <enum name="GL_HANDLE_TYPE_OPAQUE_WIN32_KMT_EXT"/>
+            <enum name="GL_HANDLE_TYPE_D3D12_TILEPOOL_EXT"/>
+            <enum name="GL_HANDLE_TYPE_D3D12_RESOURCE_EXT"/>
+            <enum name="GL_HANDLE_TYPE_D3D11_IMAGE_EXT"/>
+            <enum name="GL_HANDLE_TYPE_D3D11_IMAGE_KMT_EXT"/>
+            <enum name="GL_HANDLE_TYPE_D3D12_FENCE_EXT"/>
+        </group>
+
         <group name="FeedbackType">
             <enum name="GL_2D"/>
             <enum name="GL_3D"/>
             <enum name="GL_3D_COLOR"/>
             <enum name="GL_3D_COLOR_TEXTURE"/>
             <enum name="GL_4D_COLOR_TEXTURE"/>
         </group>
 
         <group name="FeedBackToken">
             <enum name="GL_BITMAP_TOKEN"/>
@@ -584,20 +628,24 @@ typedef unsigned int GLhandleARB;
             <enum name="GL_DOUBLE"/>
         </group>
 
         <group name="FragmentLightModelParameterSGIX">
             <enum name="GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX"/>
             <enum name="GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX"/>
             <enum name="GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX"/>
             <enum name="GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX"/>
         </group>
 
+        <group name="FramebufferFetchNoncoherent">
+            <enum name="GL_FRAMEBUFFER_FETCH_NONCOHERENT_QCOM"/>
+        </group>
+
         <group name="FrontFaceDirection">
             <enum name="GL_CCW"/>
             <enum name="GL_CW"/>
         </group>
 
         <group name="GetColorTableParameterPNameSGI">
             <enum name="GL_COLOR_TABLE_ALPHA_SIZE_SGI"/>
             <enum name="GL_COLOR_TABLE_BIAS_SGI"/>
             <enum name="GL_COLOR_TABLE_BLUE_SIZE_SGI"/>
             <enum name="GL_COLOR_TABLE_FORMAT_SGI"/>
@@ -730,25 +778,29 @@ typedef unsigned int GLhandleARB;
             <enum name="GL_DEFORMATIONS_MASK_SGIX"/>
             <enum name="GL_DEPTH_BIAS"/>
             <enum name="GL_DEPTH_BITS"/>
             <enum name="GL_DEPTH_CLEAR_VALUE"/>
             <enum name="GL_DEPTH_FUNC"/>
             <enum name="GL_DEPTH_RANGE"/>
             <enum name="GL_DEPTH_SCALE"/>
             <enum name="GL_DEPTH_TEST"/>
             <enum name="GL_DEPTH_WRITEMASK"/>
             <enum name="GL_DETAIL_TEXTURE_2D_BINDING_SGIS"/>
+            <enum name="GL_DEVICE_LUID_EXT"/>
+            <enum name="GL_DEVICE_NODE_MASK_EXT"/>
+            <enum name="GL_DEVICE_UUID_EXT"/>
             <enum name="GL_DISTANCE_ATTENUATION_SGIS"/>
             <enum name="GL_DITHER"/>
             <enum name="GL_DOUBLEBUFFER"/>
             <enum name="GL_DRAW_BUFFER"/>
             <enum name="GL_DRAW_BUFFER_EXT"/>
+            <enum name="GL_DRIVER_UUID_EXT"/>
             <enum name="GL_EDGE_FLAG"/>
             <enum name="GL_EDGE_FLAG_ARRAY"/>
             <enum name="GL_EDGE_FLAG_ARRAY_COUNT_EXT"/>
             <enum name="GL_EDGE_FLAG_ARRAY_STRIDE"/>
             <enum name="GL_FEEDBACK_BUFFER_SIZE"/>
             <enum name="GL_FEEDBACK_BUFFER_TYPE"/>
             <enum name="GL_FOG"/>
             <enum name="GL_FOG_COLOR"/>
             <enum name="GL_FOG_DENSITY"/>
             <enum name="GL_FOG_END"/>
@@ -874,20 +926,21 @@ typedef unsigned int GLhandleARB;
             <enum name="GL_MODELVIEW0_STACK_DEPTH_EXT"/>
             <enum name="GL_MODELVIEW_MATRIX"/>
             <enum name="GL_MODELVIEW_STACK_DEPTH"/>
             <enum name="GL_MULTISAMPLE_SGIS"/>
             <enum name="GL_NAME_STACK_DEPTH"/>
             <enum name="GL_NORMALIZE"/>
             <enum name="GL_NORMAL_ARRAY"/>
             <enum name="GL_NORMAL_ARRAY_COUNT_EXT"/>
             <enum name="GL_NORMAL_ARRAY_STRIDE"/>
             <enum name="GL_NORMAL_ARRAY_TYPE"/>
+            <enum name="GL_NUM_DEVICE_UUIDS"/>
             <enum name="GL_PACK_ALIGNMENT"/>
             <enum name="GL_PACK_CMYK_HINT_EXT"/>
             <enum name="GL_PACK_IMAGE_DEPTH_SGIS"/>
             <enum name="GL_PACK_IMAGE_HEIGHT_EXT"/>
             <enum name="GL_PACK_LSB_FIRST"/>
             <enum name="GL_PACK_RESAMPLE_SGIX"/>
             <enum name="GL_PACK_ROW_LENGTH"/>
             <enum name="GL_PACK_SKIP_IMAGES_EXT"/>
             <enum name="GL_PACK_SKIP_PIXELS"/>
             <enum name="GL_PACK_SKIP_ROWS"/>
@@ -1408,20 +1461,25 @@ typedef unsigned int GLhandleARB;
             <enum name="GL_TEXTURE_UPDATE_BARRIER_BIT"/>
             <enum name="GL_TEXTURE_UPDATE_BARRIER_BIT_EXT"/>
             <enum name="GL_TRANSFORM_FEEDBACK_BARRIER_BIT"/>
             <enum name="GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT"/>
             <enum name="GL_UNIFORM_BARRIER_BIT"/>
             <enum name="GL_UNIFORM_BARRIER_BIT_EXT"/>
             <enum name="GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT"/>
             <enum name="GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT"/>
         </group>
 
+        <group name="MemoryObjectParameterName">
+            <enum name="GL_DEDICATED_MEMORY_OBJECT_EXT"/>
+            <enum name="GL_PROTECTED_MEMORY_OBJECT_EXT"/>
+        </group>
+
         <group name="MeshMode1">
             <enum name="GL_LINE"/>
             <enum name="GL_POINT"/>
         </group>
 
         <group name="MeshMode2">
             <enum name="GL_FILL"/>
             <enum name="GL_LINE"/>
             <enum name="GL_POINT"/>
         </group>
@@ -1788,30 +1846,40 @@ typedef unsigned int GLhandleARB;
             <enum name="GL_4PASS_0_EXT"/>
             <enum name="GL_4PASS_0_SGIS"/>
             <enum name="GL_4PASS_1_EXT"/>
             <enum name="GL_4PASS_1_SGIS"/>
             <enum name="GL_4PASS_2_EXT"/>
             <enum name="GL_4PASS_2_SGIS"/>
             <enum name="GL_4PASS_3_EXT"/>
             <enum name="GL_4PASS_3_SGIS"/>
         </group>
 
+        <group name="SemaphoreParameterName">
+            <enum name="GL_D3D12_FENCE_VALUE_EXT"/>
+        </group>
+
         <group name="SeparableTargetEXT">
             <enum name="GL_SEPARABLE_2D"/>
             <enum name="GL_SEPARABLE_2D_EXT"/>
         </group>
 
         <group name="ShadingModel">
             <enum name="GL_FLAT"/>
             <enum name="GL_SMOOTH"/>
         </group>
 
+        <group name="StencilFaceDirection">
+             <enum name="GL_FRONT"/>
+             <enum name="GL_BACK"/>
+             <enum name="GL_FRONT_AND_BACK"/>
+        </group>
+
         <group name="StencilFunction">
             <enum name="GL_ALWAYS"/>
             <enum name="GL_EQUAL"/>
             <enum name="GL_GEQUAL"/>
             <enum name="GL_GREATER"/>
             <enum name="GL_LEQUAL"/>
             <enum name="GL_LESS"/>
             <enum name="GL_NEVER"/>
             <enum name="GL_NOTEQUAL"/>
         </group>
@@ -1823,20 +1891,21 @@ typedef unsigned int GLhandleARB;
             <enum name="GL_KEEP"/>
             <enum name="GL_REPLACE"/>
             <enum name="GL_ZERO"/>
         </group>
 
         <group name="StringName">
             <enum name="GL_EXTENSIONS"/>
             <enum name="GL_RENDERER"/>
             <enum name="GL_VENDOR"/>
             <enum name="GL_VERSION"/>
+            <enum name="GL_SHADING_LANGUAGE_VERSION"/>
         </group>
 
         <group name="TexCoordPointerType">
             <enum name="GL_DOUBLE"/>
             <enum name="GL_FLOAT"/>
             <enum name="GL_INT"/>
             <enum name="GL_SHORT"/>
         </group>
 
         <group name="TextureCoordName">
@@ -1881,20 +1950,30 @@ typedef unsigned int GLhandleARB;
         <group name="TextureGenParameter">
             <enum name="GL_EYE_LINE_SGIS"/>
             <enum name="GL_EYE_PLANE"/>
             <enum name="GL_EYE_POINT_SGIS"/>
             <enum name="GL_OBJECT_LINE_SGIS"/>
             <enum name="GL_OBJECT_PLANE"/>
             <enum name="GL_OBJECT_POINT_SGIS"/>
             <enum name="GL_TEXTURE_GEN_MODE"/>
         </group>
 
+        <group name="TextureLayout">
+            <enum name="GL_LAYOUT_GENERAL_EXT"/>
+            <enum name="GL_LAYOUT_COLOR_ATTACHMENT_EXT"/>
+            <enum name="GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT"/>
+            <enum name="GL_LAYOUT_DEPTH_STENCIL_READ_ONLY_EXT"/>
+            <enum name="GL_LAYOUT_SHADER_READ_ONLY_EXT"/>
+            <enum name="GL_LAYOUT_TRANSFER_SRC_EXT"/>
+            <enum name="GL_LAYOUT_TRANSFER_DST_EXT"/>
+        </group>
+
         <group name="TextureMagFilter">
             <enum name="GL_FILTER4_SGIS"/>
             <enum name="GL_LINEAR"/>
             <enum name="GL_LINEAR_DETAIL_ALPHA_SGIS"/>
             <enum name="GL_LINEAR_DETAIL_COLOR_SGIS"/>
             <enum name="GL_LINEAR_DETAIL_SGIS"/>
             <enum name="GL_LINEAR_SHARPEN_ALPHA_SGIS"/>
             <enum name="GL_LINEAR_SHARPEN_COLOR_SGIS"/>
             <enum name="GL_LINEAR_SHARPEN_SGIS"/>
             <enum name="GL_NEAREST"/>
@@ -1947,45 +2026,81 @@ typedef unsigned int GLhandleARB;
             <enum name="GL_TEXTURE_MAX_CLAMP_T_SGIX"/>
             <enum name="GL_TEXTURE_MIN_FILTER"/>
             <enum name="GL_TEXTURE_PRIORITY"/>
             <enum name="GL_TEXTURE_PRIORITY_EXT"/>
             <enum name="GL_TEXTURE_WRAP_Q_SGIS"/>
             <enum name="GL_TEXTURE_WRAP_R"/>
             <enum name="GL_TEXTURE_WRAP_R_EXT"/>
             <enum name="GL_TEXTURE_WRAP_R_OES"/>
             <enum name="GL_TEXTURE_WRAP_S"/>
             <enum name="GL_TEXTURE_WRAP_T"/>
+            <enum name="GL_TEXTURE_BASE_LEVEL"/>
+            <enum name="GL_TEXTURE_COMPARE_MODE"/>
+            <enum name="GL_TEXTURE_COMPARE_FUNC"/>
+            <enum name="GL_TEXTURE_LOD_BIAS"/>
+            <enum name="GL_TEXTURE_MIN_LOD"/>
+            <enum name="GL_TEXTURE_MAX_LOD"/>
+            <enum name="GL_TEXTURE_MAX_LEVEL"/>
+            <enum name="GL_TEXTURE_SWIZZLE_R"/>
+            <enum name="GL_TEXTURE_SWIZZLE_G"/>
+            <enum name="GL_TEXTURE_SWIZZLE_B"/>
+            <enum name="GL_TEXTURE_SWIZZLE_A"/>
+            <enum name="GL_TEXTURE_SWIZZLE_RGBA"/>
+            <enum name="GL_TEXTURE_TILING_EXT"/>
+            <enum name="GL_DEPTH_STENCIL_TEXTURE_MODE"/>
         </group>
 
         <group name="TextureTarget">
             <enum name="GL_DETAIL_TEXTURE_2D_SGIS"/>
             <enum name="GL_PROXY_TEXTURE_1D"/>
+            <enum name="GL_PROXY_TEXTURE_1D_ARRAY"/>
+            <enum name="GL_PROXY_TEXTURE_1D_ARRAY_EXT"/>
             <enum name="GL_PROXY_TEXTURE_1D_EXT"/>
             <enum name="GL_PROXY_TEXTURE_2D"/>
+            <enum name="GL_PROXY_TEXTURE_2D_ARRAY"/>
+            <enum name="GL_PROXY_TEXTURE_2D_ARRAY_EXT"/>
             <enum name="GL_PROXY_TEXTURE_2D_EXT"/>
+            <enum name="GL_PROXY_TEXTURE_2D_MULTISAMPLE"/>
+            <enum name="GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY"/>
             <enum name="GL_PROXY_TEXTURE_3D"/>
             <enum name="GL_PROXY_TEXTURE_3D_EXT"/>
             <enum name="GL_PROXY_TEXTURE_4D_SGIS"/>
+            <enum name="GL_PROXY_TEXTURE_CUBE_MAP"/>
+            <enum name="GL_PROXY_TEXTURE_CUBE_MAP_ARB"/>
+            <enum name="GL_PROXY_TEXTURE_CUBE_MAP_EXT"/>
+            <enum name="GL_PROXY_TEXTURE_CUBE_MAP_ARRAY"/>
+            <enum name="GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB"/>
+            <enum name="GL_PROXY_TEXTURE_RECTANGLE"/>
+            <enum name="GL_PROXY_TEXTURE_RECTANGLE_ARB"/>
+            <enum name="GL_PROXY_TEXTURE_RECTANGLE_NV"/>
             <enum name="GL_TEXTURE_1D"/>
             <enum name="GL_TEXTURE_2D"/>
             <enum name="GL_TEXTURE_3D"/>
             <enum name="GL_TEXTURE_3D_EXT"/>
             <enum name="GL_TEXTURE_3D_OES"/>
             <enum name="GL_TEXTURE_4D_SGIS"/>
-            <enum name="GL_TEXTURE_BASE_LEVEL"/>
-            <enum name="GL_TEXTURE_BASE_LEVEL_SGIS"/>
-            <enum name="GL_TEXTURE_MAX_LEVEL"/>
-            <enum name="GL_TEXTURE_MAX_LEVEL_SGIS"/>
-            <enum name="GL_TEXTURE_MAX_LOD"/>
-            <enum name="GL_TEXTURE_MAX_LOD_SGIS"/>
-            <enum name="GL_TEXTURE_MIN_LOD"/>
-            <enum name="GL_TEXTURE_MIN_LOD_SGIS"/>
+            <enum name="GL_TEXTURE_RECTANGLE"/>
+            <enum name="GL_TEXTURE_CUBE_MAP"/>
+            <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_X"/>
+            <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X"/>
+            <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y"/>
+            <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y"/>
+            <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z"/>
+            <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z"/>
+            <enum name="GL_TEXTURE_CUBE_MAP_ARRAY"/>
+            <enum name="GL_TEXTURE_CUBE_MAP_ARRAY_ARB"/>
+            <enum name="GL_TEXTURE_CUBE_MAP_ARRAY_EXT"/>
+            <enum name="GL_TEXTURE_CUBE_MAP_ARRAY_OES"/>
+            <enum name="GL_TEXTURE_1D_ARRAY"/>
+            <enum name="GL_TEXTURE_2D_ARRAY"/>
+            <enum name="GL_TEXTURE_2D_MULTISAMPLE"/>
+            <enum name="GL_TEXTURE_2D_MULTISAMPLE_ARRAY"/>
         </group>
 
         <group name="TextureWrapMode">
             <enum name="GL_CLAMP"/>
             <enum name="GL_CLAMP_TO_BORDER"/>
             <enum name="GL_CLAMP_TO_BORDER_ARB"/>
             <enum name="GL_CLAMP_TO_BORDER_NV"/>
             <enum name="GL_CLAMP_TO_BORDER_SGIS"/>
             <enum name="GL_CLAMP_TO_EDGE"/>
             <enum name="GL_CLAMP_TO_EDGE_SGIS"/>
@@ -2090,21 +2205,22 @@ typedef unsigned int GLhandleARB;
         <enum value="0x0020" name="GL_MAP_UNSYNCHRONIZED_BIT_EXT"/>
         <enum value="0x0040" name="GL_MAP_PERSISTENT_BIT"/>
         <enum value="0x0040" name="GL_MAP_PERSISTENT_BIT_EXT"/>
         <enum value="0x0080" name="GL_MAP_COHERENT_BIT"/>
         <enum value="0x0080" name="GL_MAP_COHERENT_BIT_EXT"/>
         <enum value="0x0100" name="GL_DYNAMIC_STORAGE_BIT"/>
         <enum value="0x0100" name="GL_DYNAMIC_STORAGE_BIT_EXT"/>
         <enum value="0x0200" name="GL_CLIENT_STORAGE_BIT"/>
         <enum value="0x0200" name="GL_CLIENT_STORAGE_BIT_EXT"/>
         <enum value="0x0400" name="GL_SPARSE_STORAGE_BIT_ARB"/>
-            <!-- Bits 0x1000 and 0x0800 reserved for Joshua Schnarr, jschnarr at nvidia.com -->
+        <enum value="0x0800" name="GL_LGPU_SEPARATE_STORAGE_BIT_NVX"/>
+        <enum value="0x0800" name="GL_PER_GPU_STORAGE_BIT_NV"/>
     </enums>
 
     <enums namespace="GL" group="MemoryBarrierMask" type="bitmask">
         <enum value="0x00000001" name="GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT"/>
         <enum value="0x00000001" name="GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT"/>
         <enum value="0x00000002" name="GL_ELEMENT_ARRAY_BARRIER_BIT"/>
         <enum value="0x00000002" name="GL_ELEMENT_ARRAY_BARRIER_BIT_EXT"/>
         <enum value="0x00000004" name="GL_UNIFORM_BARRIER_BIT"/>
         <enum value="0x00000004" name="GL_UNIFORM_BARRIER_BIT_EXT"/>
         <enum value="0x00000008" name="GL_TEXTURE_FETCH_BARRIER_BIT"/>
@@ -2287,25 +2403,31 @@ typedef unsigned int GLhandleARB;
         <enum value="0x01000000" name="GL_MULTISAMPLE_BUFFER_BIT0_QCOM"/>
         <enum value="0x02000000" name="GL_MULTISAMPLE_BUFFER_BIT1_QCOM"/>
         <enum value="0x04000000" name="GL_MULTISAMPLE_BUFFER_BIT2_QCOM"/>
         <enum value="0x08000000" name="GL_MULTISAMPLE_BUFFER_BIT3_QCOM"/>
         <enum value="0x10000000" name="GL_MULTISAMPLE_BUFFER_BIT4_QCOM"/>
         <enum value="0x20000000" name="GL_MULTISAMPLE_BUFFER_BIT5_QCOM"/>
         <enum value="0x40000000" name="GL_MULTISAMPLE_BUFFER_BIT6_QCOM"/>
         <enum value="0x80000000" name="GL_MULTISAMPLE_BUFFER_BIT7_QCOM"/>
     </enums>
 
+    <enums namespace="GL" group="FoveationConfigBitQCOM" type="bitmask">
+        <enum value="0x00000001" name="GL_FOVEATION_ENABLE_BIT_QCOM"/>
+        <enum value="0x00000002" name="GL_FOVEATION_SCALED_BIN_METHOD_BIT_QCOM"/>
+    </enums>
+
     <enums namespace="GL" group="FfdMaskSGIX" type="bitmask">
         <enum value="0x00000001" name="GL_TEXTURE_DEFORMATION_BIT_SGIX"/>
         <enum value="0x00000002" name="GL_GEOMETRY_DEFORMATION_BIT_SGIX"/>
     </enums>
 
+
     <!-- Non-bitmask enums with their own namespace. Generally small numbers
          used for indexed access. -->
 
     <enums namespace="GL" group="CommandOpcodesNV" vendor="NV" comment="For NV_command_list.">
         <enum value="0x0000" name="GL_TERMINATE_SEQUENCE_COMMAND_NV"/>
         <enum value="0x0001" name="GL_NOP_COMMAND_NV"/>
         <enum value="0x0002" name="GL_DRAW_ELEMENTS_COMMAND_NV"/>
         <enum value="0x0003" name="GL_DRAW_ARRAYS_COMMAND_NV"/>
         <enum value="0x0004" name="GL_DRAW_ELEMENTS_STRIP_COMMAND_NV"/>
         <enum value="0x0005" name="GL_DRAW_ARRAYS_STRIP_COMMAND_NV"/>
@@ -2405,25 +2527,28 @@ typedef unsigned int GLhandleARB;
 
     <enums namespace="GL" group="SpecialNumbers" vendor="ARB" comment="Tokens whose numeric value is intrinsically meaningful">
         <enum value="0" name="GL_FALSE"/>
         <enum value="0" name="GL_NO_ERROR"/>
         <enum value="0" name="GL_ZERO"/>
         <enum value="0" name="GL_NONE"/>
         <enum value="0" name="GL_NONE_OES"/>
         <enum value="1" name="GL_TRUE"/>
         <enum value="1" name="GL_ONE"/>
         <enum value="0xFFFFFFFF" name="GL_INVALID_INDEX" type="u" comment="Tagged as uint"/>
+        <enum value="0xFFFFFFFF" name="GL_ALL_PIXELS_AMD"/>
         <enum value="0xFFFFFFFFFFFFFFFF" name="GL_TIMEOUT_IGNORED" type="ull" comment="Tagged as uint64"/>
         <enum value="0xFFFFFFFFFFFFFFFF" name="GL_TIMEOUT_IGNORED_APPLE" type="ull" comment="Tagged as uint64"/>
         <enum value="1" name="GL_VERSION_ES_CL_1_0" comment="Not an API enum. API definition macro for ES 1.0/1.1 headers"/>
         <enum value="1" name="GL_VERSION_ES_CM_1_1" comment="Not an API enum. API definition macro for ES 1.0/1.1 headers"/>
         <enum value="1" name="GL_VERSION_ES_CL_1_1" comment="Not an API enum. API definition macro for ES 1.0/1.1 headers"/>
+        <enum value="16" name="GL_UUID_SIZE_EXT"/>
+        <enum value="8" name="GL_LUID_SIZE_EXT"/>
     </enums>
 
     <enums namespace="GL" start="0x0000" end="0x7FFF" vendor="ARB" comment="Mostly OpenGL 1.0/1.1 enum assignments. Unused ranges should generally remain unused.">
         <enum value="0x0000" name="GL_POINTS"/>
         <enum value="0x0001" name="GL_LINES"/>
         <enum value="0x0002" name="GL_LINE_LOOP"/>
         <enum value="0x0003" name="GL_LINE_STRIP"/>
         <enum value="0x0004" name="GL_TRIANGLES"/>
         <enum value="0x0005" name="GL_TRIANGLE_STRIP"/>
         <enum value="0x0006" name="GL_TRIANGLE_FAN"/>
@@ -7435,21 +7560,23 @@ typedef unsigned int GLhandleARB;
 
     <enums namespace="GL" start="0x8F60" end="0x8F6F" vendor="ARM" comment="For Remi Pedersen, Khronos bug 3745">
         <enum value="0x8F60" name="GL_MALI_SHADER_BINARY_ARM"/>
         <enum value="0x8F61" name="GL_MALI_PROGRAM_BINARY_ARM"/>
             <unused start="0x8F62" vendor="ARM"/>
         <enum value="0x8F63" name="GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT"/>
         <enum value="0x8F64" name="GL_SHADER_PIXEL_LOCAL_STORAGE_EXT"/>
         <enum value="0x8F65" name="GL_FETCH_PER_SAMPLE_ARM"/>
         <enum value="0x8F66" name="GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM"/>
         <enum value="0x8F67" name="GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT"/>
-            <unused start="0x8F68" end="0x8F6F" vendor="ARM"/>
+            <unused start="0x8F68" vendor="ARM"/>
+        <enum value="0x8F69" name="GL_TEXTURE_ASTC_DECODE_PRECISION_EXT"/>
+            <unused start="0x8F6A" end="0x8F6F" vendor="ARM"/>
     </enums>
 
     <enums namespace="GL" start="0x8F70" end="0x8F7F" vendor="HI" comment="For Mark Callow, Khronos bug 4055. Shared with EGL.">
             <unused start="0x8F70" end="0x8F7F" vendor="HI"/>
     </enums>
 
     <enums namespace="GL" start="0x8F80" end="0x8F8F" vendor="Zebra" comment="For Mike Weiblen, public bug 910">
             <unused start="0x8F80" end="0x8F8F" vendor="Zebra"/>
     </enums>
 
@@ -8023,33 +8150,45 @@ typedef unsigned int GLhandleARB;
         <enum value="0x91A6" name="GL_TEXTURE_SPARSE_ARB"/>
         <enum value="0x91A6" name="GL_TEXTURE_SPARSE_EXT"/>
         <enum value="0x91A7" name="GL_VIRTUAL_PAGE_SIZE_INDEX_ARB"/>
         <enum value="0x91A7" name="GL_VIRTUAL_PAGE_SIZE_INDEX_EXT"/>
         <enum value="0x91A8" name="GL_NUM_VIRTUAL_PAGE_SIZES_ARB"/>
         <enum value="0x91A8" name="GL_NUM_VIRTUAL_PAGE_SIZES_EXT"/>
         <enum value="0x91A9" name="GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB"/>
         <enum value="0x91A9" name="GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_EXT"/>
         <enum value="0x91AA" name="GL_NUM_SPARSE_LEVELS_ARB"/>
         <enum value="0x91AA" name="GL_NUM_SPARSE_LEVELS_EXT"/>
-            <unused start="0x91AB" end="0x91AF" vendor="AMD"/>
+            <unused start="0x91AB" end="0x91AD" vendor="AMD"/>
+        <enum value="0x91AE" name="GL_PIXELS_PER_SAMPLE_PATTERN_X_AMD"/>
+        <enum value="0x91AF" name="GL_PIXELS_PER_SAMPLE_PATTERN_Y_AMD"/>
         <enum value="0x91B0" name="GL_MAX_SHADER_COMPILER_THREADS_ARB"/>
         <enum value="0x91B1" name="GL_COMPLETION_STATUS_ARB"/>
             <unused start="0x91B2" end="0x91B8" vendor="AMD"/>
         <enum value="0x91B9" name="GL_COMPUTE_SHADER"/>
             <unused start="0x91BA" vendor="AMD"/>
         <enum value="0x91BB" name="GL_MAX_COMPUTE_UNIFORM_BLOCKS"/>
         <enum value="0x91BC" name="GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS"/>
         <enum value="0x91BD" name="GL_MAX_COMPUTE_IMAGE_UNIFORMS"/>
         <enum value="0x91BE" name="GL_MAX_COMPUTE_WORK_GROUP_COUNT"/>
         <enum value="0x91BF" name="GL_MAX_COMPUTE_WORK_GROUP_SIZE"/>
         <enum value="0x91BF" name="GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB" alias="GL_MAX_COMPUTE_WORK_GROUP_SIZE"/>
-            <unused start="0x91C0" end="0x923F" vendor="AMD"/>
+            <unused start="0x91C0" end="0x91C4" vendor="AMD"/>
+        <enum value="0x91C5" name="GL_FLOAT16_MAT2_AMD"/>
+        <enum value="0x91C6" name="GL_FLOAT16_MAT3_AMD"/>
+        <enum value="0x91C7" name="GL_FLOAT16_MAT4_AMD"/>
+        <enum value="0x91C8" name="GL_FLOAT16_MAT2x3_AMD"/>
+        <enum value="0x91C9" name="GL_FLOAT16_MAT2x4_AMD"/>
+        <enum value="0x91CA" name="GL_FLOAT16_MAT3x2_AMD"/>
+        <enum value="0x91CB" name="GL_FLOAT16_MAT3x4_AMD"/>
+        <enum value="0x91CC" name="GL_FLOAT16_MAT4x2_AMD"/>
+        <enum value="0x91CD" name="GL_FLOAT16_MAT4x3_AMD"/>
+            <unused start="0x91CE" end="0x923F" vendor="AMD"/>
     </enums>
 
     <enums namespace="GL" start="0x9240" end="0x924F" vendor="WEBGL" comment="Khronos bug 6473,6884">
         <enum value="0x9240" name="GL_UNPACK_FLIP_Y_WEBGL"/>
         <enum value="0x9241" name="GL_UNPACK_PREMULTIPLY_ALPHA_WEBGL"/>
         <enum value="0x9242" name="GL_CONTEXT_LOST_WEBGL"/>
         <enum value="0x9243" name="GL_UNPACK_COLORSPACE_CONVERSION_WEBGL"/>
         <enum value="0x9244" name="GL_BROWSER_DEFAULT_WEBGL"/>
             <unused start="0x9245" end="0x924F" vendor="WEBGL"/>
     </enums>
@@ -8167,28 +8306,30 @@ typedef unsigned int GLhandleARB;
         <enum value="0x92AF" name="GL_HSL_COLOR"/>
         <enum value="0x92AF" name="GL_HSL_COLOR_KHR"/>
         <enum value="0x92AF" name="GL_HSL_COLOR_NV"/>
         <enum value="0x92B0" name="GL_HSL_LUMINOSITY"/>
         <enum value="0x92B0" name="GL_HSL_LUMINOSITY_KHR"/>
         <enum value="0x92B0" name="GL_HSL_LUMINOSITY_NV"/>
         <enum value="0x92B1" name="GL_PLUS_CLAMPED_NV"/>
         <enum value="0x92B2" name="GL_PLUS_CLAMPED_ALPHA_NV"/>
         <enum value="0x92B3" name="GL_MINUS_CLAMPED_NV"/>
         <enum value="0x92B4" name="GL_INVERT_OVG_NV"/>
-            <unused start="0x92B5" end="0x92BA" vendor="NV"/>
+            <unused start="0x92B5" end="0x92B9" vendor="NV"/>
+        <enum value="0x92BA" name="GL_MAX_LGPU_GPUS_NVX"/>
+        <enum value="0x92BA" name="GL_MULTICAST_GPUS_NV"/>
         <enum value="0x92BB" name="GL_PURGED_CONTEXT_RESET_NV"/>
             <unused start="0x92BC" end="0x92BD" vendor="NV"/>
         <enum value="0x92BE" name="GL_PRIMITIVE_BOUNDING_BOX_ARB"/>
         <enum value="0x92BE" name="GL_PRIMITIVE_BOUNDING_BOX"/>
         <enum value="0x92BE" name="GL_PRIMITIVE_BOUNDING_BOX_EXT"/>
         <enum value="0x92BE" name="GL_PRIMITIVE_BOUNDING_BOX_OES"/>
-            <unused start="0x92BF" vendor="NV"/>
+        <enum value="0x92BF" name="GL_ALPHA_TO_COVERAGE_DITHER_MODE_NV"/>
         <enum value="0x92C0" name="GL_ATOMIC_COUNTER_BUFFER"/>
         <enum value="0x92C1" name="GL_ATOMIC_COUNTER_BUFFER_BINDING"/>
         <enum value="0x92C2" name="GL_ATOMIC_COUNTER_BUFFER_START"/>
         <enum value="0x92C3" name="GL_ATOMIC_COUNTER_BUFFER_SIZE"/>
         <enum value="0x92C4" name="GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE"/>
         <enum value="0x92C5" name="GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS"/>
         <enum value="0x92C6" name="GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES"/>
         <enum value="0x92C7" name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER"/>
         <enum value="0x92C8" name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER"/>
         <enum value="0x92C9" name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER"/>
@@ -8332,21 +8473,23 @@ typedef unsigned int GLhandleARB;
         <enum value="0x9343" name="GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV"/>
         <enum value="0x9344" name="GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB"/>
         <enum value="0x9345" name="GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB"/>
         <enum value="0x9346" name="GL_CONSERVATIVE_RASTERIZATION_NV"/>
         <enum value="0x9347" name="GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV"/>
         <enum value="0x9348" name="GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV"/>
         <enum value="0x9349" name="GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV"/>
         <enum value="0x934A" name="GL_LOCATION_COMPONENT"/>
         <enum value="0x934B" name="GL_TRANSFORM_FEEDBACK_BUFFER_INDEX"/>
         <enum value="0x934C" name="GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE"/>
-            <unused start="0x934D" end="0x934F" vendor="NV"/>
+        <enum value="0x934D" name="GL_ALPHA_TO_COVERAGE_DITHER_DEFAULT_NV"/>
+        <enum value="0x934E" name="GL_ALPHA_TO_COVERAGE_DITHER_ENABLE_NV"/>
+        <enum value="0x934F" name="GL_ALPHA_TO_COVERAGE_DITHER_DISABLE_NV"/>
         <enum value="0x9350" name="GL_VIEWPORT_SWIZZLE_POSITIVE_X_NV"/>
         <enum value="0x9351" name="GL_VIEWPORT_SWIZZLE_NEGATIVE_X_NV"/>
         <enum value="0x9352" name="GL_VIEWPORT_SWIZZLE_POSITIVE_Y_NV"/>
         <enum value="0x9353" name="GL_VIEWPORT_SWIZZLE_NEGATIVE_Y_NV"/>
         <enum value="0x9354" name="GL_VIEWPORT_SWIZZLE_POSITIVE_Z_NV"/>
         <enum value="0x9355" name="GL_VIEWPORT_SWIZZLE_NEGATIVE_Z_NV"/>
         <enum value="0x9356" name="GL_VIEWPORT_SWIZZLE_POSITIVE_W_NV"/>
         <enum value="0x9357" name="GL_VIEWPORT_SWIZZLE_NEGATIVE_W_NV"/>
         <enum value="0x9358" name="GL_VIEWPORT_SWIZZLE_X_NV"/>
         <enum value="0x9359" name="GL_VIEWPORT_SWIZZLE_Y_NV"/>
@@ -8510,53 +8653,93 @@ typedef unsigned int GLhandleARB;
         <enum value="0x94FF" name="GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL"/>
         <enum value="0x9500" name="GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL"/>
             <unused start="0x9501" end="0x950F" vendor="INTEL"/>
     </enums>
 
     <enums namespace="GL" start="0x9510" end="0x952F" vendor="Broadcom" comment="Khronos bug 12203">
             <unused start="0x9510" end="0x952F" vendor="Broadcom"/>
     </enums>
 
     <enums namespace="GL" start="0x9530" end="0x962F" vendor="NV" comment="Khronos bug 12977">
-            <unused start="0x9530" end="0x954C" vendor="NV"/>
+            <unused start="0x9530" end="0x9547" vendor="NV"/>
+        <enum value="0x9548" name="GL_PER_GPU_STORAGE_NV"/>
+        <enum value="0x9549" name="GL_MULTICAST_PROGRAMMABLE_SAMPLE_LOCATION_NV"/>
+            <unused start="0x954A" end="0x954C" vendor="NV"/>
         <enum value="0x954D" name="GL_CONSERVATIVE_RASTER_MODE_NV"/>
         <enum value="0x954E" name="GL_CONSERVATIVE_RASTER_MODE_POST_SNAP_NV"/>
         <enum value="0x954F" name="GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_TRIANGLES_NV"/>
-            <unused start="0x9550" end="0x962F" vendor="NV"/>
+            <unused start="0x9550" vendor="NV"/>
+        <enum value="0x9551" name="GL_SHADER_BINARY_FORMAT_SPIR_V_ARB"/>
+        <enum value="0x9552" name="GL_SPIR_V_BINARY_ARB"/>
+            <unused start="0x9553" end="0x9557" vendor="NV"/>
+        <enum value="0x9558" name="GL_RENDER_GPU_MASK_NV"/>
+            <unused start="0x9559" end="0x957F" vendor="NV"/>
+        <enum value="0x9580" name="GL_TEXTURE_TILING_EXT"/>
+        <enum value="0x9581" name="GL_DEDICATED_MEMORY_OBJECT_EXT"/>
+        <enum value="0x9582" name="GL_NUM_TILING_TYPES_EXT"/>
+        <enum value="0x9583" name="GL_TILING_TYPES_EXT"/>
+        <enum value="0x9584" name="GL_OPTIMAL_TILING_EXT"/>
+        <enum value="0x9585" name="GL_LINEAR_TILING_EXT"/>
+        <enum value="0x9586" name="GL_HANDLE_TYPE_OPAQUE_FD_EXT"/>
+        <enum value="0x9587" name="GL_HANDLE_TYPE_OPAQUE_WIN32_EXT"/>
+        <enum value="0x9588" name="GL_HANDLE_TYPE_OPAQUE_WIN32_KMT_EXT"/>
+        <enum value="0x9589" name="GL_HANDLE_TYPE_D3D12_TILEPOOL_EXT"/>
+        <enum value="0x958A" name="GL_HANDLE_TYPE_D3D12_RESOURCE_EXT"/>
+        <enum value="0x958B" name="GL_HANDLE_TYPE_D3D11_IMAGE_EXT"/>
+        <enum value="0x958C" name="GL_HANDLE_TYPE_D3D11_IMAGE_KMT_EXT"/>
+        <enum value="0x958D" name="GL_LAYOUT_GENERAL_EXT"/>
+        <enum value="0x958E" name="GL_LAYOUT_COLOR_ATTACHMENT_EXT"/>
+        <enum value="0x958F" name="GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT"/>
+        <enum value="0x9590" name="GL_LAYOUT_DEPTH_STENCIL_READ_ONLY_EXT"/>
+        <enum value="0x9591" name="GL_LAYOUT_SHADER_READ_ONLY_EXT"/>
+        <enum value="0x9592" name="GL_LAYOUT_TRANSFER_SRC_EXT"/>
+        <enum value="0x9593" name="GL_LAYOUT_TRANSFER_DST_EXT"/>
+        <enum value="0x9594" name="GL_HANDLE_TYPE_D3D12_FENCE_EXT"/>
+        <enum value="0x9595" name="GL_D3D12_FENCE_VALUE_EXT"/>
+        <enum value="0x9596" name="GL_NUM_DEVICE_UUIDS_EXT"/>
+        <enum value="0x9597" name="GL_DEVICE_UUID_EXT"/>
+        <enum value="0x9598" name="GL_DRIVER_UUID_EXT"/>
+        <enum value="0x9599" name="GL_DEVICE_LUID_EXT"/>
+        <enum value="0x959A" name="GL_DEVICE_NODE_MASK_EXT"/>
+        <enum value="0x959B" name="GL_PROTECTED_MEMORY_OBJECT_EXT"/>
+            <unused start="0x959C" end="0x962F" vendor="NV"/>
     </enums>
 
     <enums namespace="GL" start="0x9630" end="0x963F" vendor="Oculus" comment="Email from Cass Everitt">
         <enum value="0x9630" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR"/>
         <enum value="0x9631" name="GL_MAX_VIEWS_OVR"/>
         <enum value="0x9632" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR"/>
-            <unused start="0x9633" end="0x963F" vendor="Oculus"/>
+        <enum value="0x9633" name="GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR"/>
+            <unused start="0x9634" end="0x963F" vendor="Oculus"/>
     </enums>
 
     <enums namespace="GL" start="0x9640" end="0x964F" vendor="Mediatek" comment="Khronos bug 14294">
         <enum value="0x9640" name="GL_GS_SHADER_BINARY_MTK"/>
         <enum value="0x9641" name="GL_GS_PROGRAM_BINARY_MTK"/>
             <unused start="0x9642" end="0x964F" vendor="Mediatek"/>
     </enums>
 
     <enums namespace="GL" start="0x9650" end="0x968F" vendor="IMG" comment="Khronos bug 14977">
         <enum value="0x9650" name="GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_FAST_SIZE_EXT"/>
         <enum value="0x9651" name="GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_SIZE_EXT"/>
         <enum value="0x9652" name="GL_FRAMEBUFFER_INCOMPLETE_INSUFFICIENT_SHADER_COMBINED_LOCAL_STORAGE_EXT"/>
             <unused start="0x9653" end="0x968F" vendor="IMG"/>
     </enums>
 
     <enums namespace="GL" start="0x9690" end="0x969F" vendor="ANGLE" comment="Khronos bug 15423">
             <unused start="0x9690" end="0x969F" vendor="ANGLE"/>
     </enums>
 
     <enums namespace="GL" start="0x96A0" end="0x96AF" vendor="Qualcomm" comment="contact Maurice Ribble">
-            <unused start="0x96A0" end="0x96AF" vendor="Qualcomm"/>
+            <unused start="0x96A0" end="0x96A1" vendor="Qualcomm"/>
+        <enum value="0x96A2" name="GL_FRAMEBUFFER_FETCH_NONCOHERENT_QCOM"/>
+            <unused start="0x96A3" end="0x96AF" vendor="Qualcomm"/>
     </enums>
 
 <!-- Enums reservable for future use. To reserve a new range, allocate one
      or more multiples of 16 starting at the lowest available point in this
      block and note it in a new <enums> block immediately above.
 
      Please remember that new enumerant allocations must be obtained by
      request to the Khronos API registrar (see comments at the top of this
      file) File requests in the Khronos Bugzilla, OpenGL project, Registry
      component. -->
@@ -8725,27 +8908,37 @@ typedef unsigned int GLhandleARB;
             <proto>void <name>glAlphaFuncx</name></proto>
             <param><ptype>GLenum</ptype> <name>func</name></param>
             <param><ptype>GLfixed</ptype> <name>ref</name></param>
         </command>
         <command>
             <proto>void <name>glAlphaFuncxOES</name></proto>
             <param><ptype>GLenum</ptype> <name>func</name></param>
             <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>ref</name></param>
         </command>
         <command>
+            <proto>void <name>glAlphaToCoverageDitherControlNV</name></proto>
+            <param><ptype>GLenum</ptype> <name>mode</name></param>
+        </command>
+        <command>
             <proto>void <name>glApplyFramebufferAttachmentCMAAINTEL</name></proto>
         </command>
         <command>
             <proto>void <name>glApplyTextureEXT</name></proto>
             <param group="LightTextureModeEXT"><ptype>GLenum</ptype> <name>mode</name></param>
         </command>
         <command>
+            <proto><ptype>GLboolean</ptype> <name>glAcquireKeyedMutexWin32EXT</name></proto>
+            <param><ptype>GLuint</ptype> <name>memory</name></param>
+            <param><ptype>GLuint64</ptype> <name>key</name></param>
+            <param><ptype>GLuint</ptype> <name>timeout</name></param>
+        </command>
+        <command>
             <proto group="Boolean"><ptype>GLboolean</ptype> <name>glAreProgramsResidentNV</name></proto>
             <param><ptype>GLsizei</ptype> <name>n</name></param>
             <param len="n">const <ptype>GLuint</ptype> *<name>programs</name></param>
             <param group="Boolean" len="n"><ptype>GLboolean</ptype> *<name>residences</name></param>
             <glx type="vendor" opcode="1293"/>
         </command>
         <command>
             <proto group="Boolean"><ptype>GLboolean</ptype> <name>glAreTexturesResident</name></proto>
             <param><ptype>GLsizei</ptype> <name>n</name></param>
             <param group="Texture" len="n">const <ptype>GLuint</ptype> *<name>textures</name></param>
@@ -9661,20 +9854,27 @@ typedef unsigned int GLhandleARB;
         </command>
         <command>
             <proto>void <name>glBufferStorageEXT</name></proto>
             <param><ptype>GLenum</ptype> <name>target</name></param>
             <param><ptype>GLsizeiptr</ptype> <name>size</name></param>
             <param len="size">const void *<name>data</name></param>
             <param><ptype>GLbitfield</ptype> <name>flags</name></param>
             <alias name="glBufferStorage"/>
         </command>
         <command>
+            <proto>void <name>glBufferStorageMemEXT</name></proto>
+            <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+            <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+            <param><ptype>GLuint</ptype> <name>memory</name></param>
+            <param><ptype>GLuint64</ptype> <name>offset</name></param>
+        </command>
+        <command>
             <proto>void <name>glBufferSubData</name></proto>
             <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
             <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
             <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
             <param len="size">const void *<name>data</name></param>
         </command>
         <command>
             <proto>void <name>glBufferSubDataARB</name></proto>
             <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
             <param group="BufferOffsetARB"><ptype>GLintptrARB</ptype> <name>offset</name></param>
@@ -9948,34 +10148,58 @@ typedef unsigned int GLhandleARB;
         </command>
         <command>
             <proto>void <name>glClearTexImage</name></proto>
             <param><ptype>GLuint</ptype> <name>texture</name></param>
             <param><ptype>GLint</ptype> <name>level</name></param>
             <param><ptype>GLenum</ptype> <name>format</name></param>
             <param><ptype>GLenum</ptype> <name>type</name></param>
             <param len="COMPSIZE(format,type)">const void *<name>data</name></param>
         </command>
         <command>
+            <proto>void <name>glClearTexImageEXT</name></proto>
+            <param><ptype>GLuint</ptype> <name>texture</name></param>
+            <param><ptype>GLint</ptype> <name>level</name></param>
+            <param><ptype>GLenum</ptype> <name>format</name></param>
+            <param><ptype>GLenum</ptype> <name>type</name></param>
+            <param len="COMPSIZE(format,type)">const void *<name>data</name></param>
+            <alias name="glClearTexImage"/>
+        </command>
+        <command>
             <proto>void <name>glClearTexSubImage</name></proto>
             <param><ptype>GLuint</ptype> <name>texture</name></param>
             <param><ptype>GLint</ptype> <name>level</name></param>
             <param><ptype>GLint</ptype> <name>xoffset</name></param>
             <param><ptype>GLint</ptype> <name>yoffset</name></param>
             <param><ptype>GLint</ptype> <name>zoffset</name></param>
             <param><ptype>GLsizei</ptype> <name>width</name></param>
             <param><ptype>GLsizei</ptype> <name>height</name></param>
             <param><ptype>GLsizei</ptype> <name>depth</name></param>
             <param><ptype>GLenum</ptype> <name>format</name></param>
             <param><ptype>GLenum</ptype> <name>type</name></param>
             <param len="COMPSIZE(format,type)">const void *<name>data</name></param>
         </command>
         <command>
+            <proto>void <name>glClearTexSubImageEXT</name></proto>
+            <param><ptype>GLuint</ptype> <name>texture</name></param>
+            <param><ptype>GLint</ptype> <name>level</name></param>
+            <param><ptype>GLint</ptype> <name>xoffset</name></param>
+            <param><ptype>GLint</ptype> <name>yoffset</name></param>
+            <param><ptype>GLint</ptype> <name>zoffset</name></param>
+            <param><ptype>GLsizei</ptype> <name>width</name></param>
+            <param><ptype>GLsizei</ptype> <name>height</name></param>
+            <param><ptype>GLsizei</ptype> <name>depth</name></param>
+            <param><ptype>GLenum</ptype> <name>format</name></param>
+            <param><ptype>GLenum</ptype> <name>type</name></param>
+            <param len="COMPSIZE(format,type)">const void *<name>data</name></param>
+            <alias name="glClearTexSubImage"/>
+        </command>
+        <command>
             <proto>void <name>glClientActiveTexture</name></proto>
             <param group="TextureUnit"><ptype>GLenum</ptype> <name>texture</name></param>
         </command>
         <command>
             <proto>void <name>glClientActiveTextureARB</name></proto>
             <param group="TextureUnit"><ptype>GLenum</ptype> <name>texture</name></param>
             <alias name="glClientActiveTexture"/>
         </command>
         <command>
             <proto>void <name>glClientActiveVertexStreamATI</name></proto>
@@ -11700,20 +11924,25 @@ typedef unsigned int GLhandleARB;
             <proto>void <name>glCreateCommandListsNV</name></proto>
             <param><ptype>GLsizei</ptype> <name>n</name></param>
             <param><ptype>GLuint</ptype> *<name>lists</name></param>
         </command>
         <command>
             <proto>void <name>glCreateFramebuffers</name></proto>
             <param><ptype>GLsizei</ptype> <name>n</name></param>
             <param><ptype>GLuint</ptype> *<name>framebuffers</name></param>
         </command>
         <command>
+            <proto>void <name>glCreateMemoryObjectsEXT</name></proto>
+            <param><ptype>GLsizei</ptype> <name>n</name></param>
+            <param><ptype>GLuint</ptype> *<name>memoryObjects</name></param>
+        </command>
+        <command>
             <proto>void <name>glCreatePerfQueryINTEL</name></proto>
             <param><ptype>GLuint</ptype> <name>queryId</name></param>
             <param><ptype>GLuint</ptype> *<name>queryHandle</name></param>
         </command>
         <command>
             <proto><ptype>GLuint</ptype> <name>glCreateProgram</name></proto>
         </command>
         <command>
             <proto group="handleARB"><ptype>GLhandleARB</ptype> <name>glCreateProgramObjectARB</name></proto>
             <alias name="glCreateProgram"/>
@@ -12007,20 +12236,25 @@ typedef unsigned int GLhandleARB;
             <param><ptype>GLsizei</ptype> <name>n</name></param>
             <param len="n">const <ptype>GLuint</ptype> *<name>framebuffers</name></param>
         </command>
         <command>
             <proto>void <name>glDeleteLists</name></proto>
             <param group="List"><ptype>GLuint</ptype> <name>list</name></param>
             <param><ptype>GLsizei</ptype> <name>range</name></param>
             <glx type="single" opcode="103"/>
         </command>
         <command>
+            <proto>void <name>glDeleteMemoryObjectsEXT</name></proto>
+            <param><ptype>GLsizei</ptype> <name>n</name></param>
+            <param len="n">const <ptype>GLuint</ptype> *<name>memoryObjects</name></param>
+        </command>
+        <command>
             <proto>void <name>glDeleteNamedStringARB</name></proto>
             <param><ptype>GLint</ptype> <name>namelen</name></param>
             <param len="namelen">const <ptype>GLchar</ptype> *<name>name</name></param>
         </command>
         <command>
             <proto>void <name>glDeleteNamesAMD</name></proto>
             <param><ptype>GLenum</ptype> <name>identifier</name></param>
             <param><ptype>GLuint</ptype> <name>num</name></param>
             <param len="num">const <ptype>GLuint</ptype> *<name>names</name></param>
         </command>
@@ -12109,20 +12343,25 @@ typedef unsigned int GLhandleARB;
             <proto>void <name>glDeleteRenderbuffersOES</name></proto>
             <param><ptype>GLsizei</ptype> <name>n</name></param>
             <param len="n">const <ptype>GLuint</ptype> *<name>renderbuffers</name></param>
         </command>
         <command>
             <proto>void <name>glDeleteSamplers</name></proto>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param len="count">const <ptype>GLuint</ptype> *<name>samplers</name></param>
         </command>
         <command>
+            <proto>void <name>glDeleteSemaphoresEXT</name></proto>
+            <param><ptype>GLsizei</ptype> <name>n</name></param>
+            <param len="count">const <ptype>GLuint</ptype> *<name>semaphores</name></param>
+        </command>
+        <command>
             <proto>void <name>glDeleteShader</name></proto>
             <param><ptype>GLuint</ptype> <name>shader</name></param>
             <glx type="single" opcode="195"/>
         </command>
         <command>
             <proto>void <name>glDeleteStatesNV</name></proto>
             <param><ptype>GLsizei</ptype> <name>n</name></param>
             <param>const <ptype>GLuint</ptype> *<name>states</name></param>
         </command>
         <command>
@@ -12855,26 +13094,39 @@ typedef unsigned int GLhandleARB;
         <command>
             <proto>void <name>glDrawTexxvOES</name></proto>
             <param>const <ptype>GLfixed</ptype> *<name>coords</name></param>
         </command>
         <command>
             <proto>void <name>glDrawTransformFeedback</name></proto>
             <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
             <param><ptype>GLuint</ptype> <name>id</name></param>
         </command>
         <command>
+            <proto>void <name>glDrawTransformFeedbackEXT</name></proto>
+            <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+            <param><ptype>GLuint</ptype> <name>id</name></param>
+            <alias name="glDrawTransformFeedback"/>
+        </command>
+        <command>
             <proto>void <name>glDrawTransformFeedbackInstanced</name></proto>
             <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
             <param><ptype>GLuint</ptype> <name>id</name></param>
             <param><ptype>GLsizei</ptype> <name>instancecount</name></param>
         </command>
         <command>
+            <proto>void <name>glDrawTransformFeedbackInstancedEXT</name></proto>
+            <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+            <param><ptype>GLuint</ptype> <name>id</name></param>
+            <param><ptype>GLsizei</ptype> <name>instancecount</name></param>
+            <alias name="glDrawTransformFeedbackInstanced"/>
+        </command>
+        <command>
             <proto>void <name>glDrawTransformFeedbackNV</name></proto>
             <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
             <param><ptype>GLuint</ptype> <name>id</name></param>
             <alias name="glDrawTransformFeedback"/>
         </command>
         <command>
             <proto>void <name>glDrawTransformFeedbackStream</name></proto>
             <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
             <param><ptype>GLuint</ptype> <name>id</name></param>
             <param><ptype>GLuint</ptype> <name>stream</name></param>
@@ -13616,20 +13868,42 @@ typedef unsigned int GLhandleARB;
             <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
             <param group="DrawBufferMode"><ptype>GLenum</ptype> <name>mode</name></param>
         </command>
         <command>
             <proto>void <name>glFramebufferDrawBuffersEXT</name></proto>
             <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
             <param><ptype>GLsizei</ptype> <name>n</name></param>
             <param group="DrawBufferMode" len="n">const <ptype>GLenum</ptype> *<name>bufs</name></param>
         </command>
         <command>
+            <proto>void <name>glFramebufferFetchBarrierQCOM</name></proto>
+        </command>
+        <command>
+            <proto>void <name>glFramebufferFoveationConfigQCOM</name></proto>
+            <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+            <param><ptype>GLuint</ptype> <name>numLayers</name></param>
+            <param><ptype>GLuint</ptype> <name>focalPointsPerLayer</name></param>
+            <param><ptype>GLuint</ptype> <name>requestedFeatures</name></param>
+            <param len="1"><ptype>GLuint</ptype> *<name>providedFeatures</name></param>
+        </command>
+        <command>
+            <proto>void <name>glFramebufferFoveationParametersQCOM</name></proto>
+            <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+            <param><ptype>GLuint</ptype> <name>layer</name></param>
+            <param><ptype>GLuint</ptype> <name>focalPoint</name></param>
+            <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>focalX</name></param>
+            <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>focalY</name></param>
+            <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>gainX</name></param>
+            <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>gainY</name></param>
+            <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>foveaArea</name></param>
+        </command>
+        <command>
             <proto>void <name>glFramebufferParameteri</name></proto>
             <param><ptype>GLenum</ptype> <name>target</name></param>
             <param><ptype>GLenum</ptype> <name>pname</name></param>
             <param><ptype>GLint</ptype> <name>param</name></param>
         </command>
         <command>
             <proto>void <name>glFramebufferPixelLocalStorageSizeEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>target</name></param>
             <param><ptype>GLsizei</ptype> <name>size</name></param>
         </command>
@@ -13670,20 +13944,27 @@ typedef unsigned int GLhandleARB;
             <param>const <ptype>GLfloat</ptype> *<name>v</name></param>
         </command>
         <command>
             <proto>void <name>glFramebufferSampleLocationsfvNV</name></proto>
             <param><ptype>GLenum</ptype> <name>target</name></param>
             <param><ptype>GLuint</ptype> <name>start</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param>const <ptype>GLfloat</ptype> *<name>v</name></param>
         </command>
         <command>
+            <proto>void <name>glFramebufferSamplePositionsfvAMD</name></proto>
+            <param><ptype>GLenum</ptype> <name>target</name></param>
+            <param><ptype>GLuint</ptype> <name>numsamples</name></param>
+            <param><ptype>GLuint</ptype> <name>pixelindex</name></param>
+            <param>const <ptype>GLfloat</ptype> *<name>values</name></param>
+        </command>
+        <command>
             <proto>void <name>glFramebufferTexture</name></proto>
             <param><ptype>GLenum</ptype> <name>target</name></param>
             <param><ptype>GLenum</ptype> <name>attachment</name></param>
             <param><ptype>GLuint</ptype> <name>texture</name></param>
             <param><ptype>GLint</ptype> <name>level</name></param>
         </command>
         <command>
             <proto>void <name>glFramebufferTexture1D</name></proto>
             <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
             <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
@@ -14071,20 +14352,25 @@ typedef unsigned int GLhandleARB;
             <proto>void <name>glGenRenderbuffersOES</name></proto>
             <param><ptype>GLsizei</ptype> <name>n</name></param>
             <param len="n"><ptype>GLuint</ptype> *<name>renderbuffers</name></param>
         </command>
         <command>
             <proto>void <name>glGenSamplers</name></proto>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param len="count"><ptype>GLuint</ptype> *<name>samplers</name></param>
         </command>
         <command>
+            <proto>void <name>glGenSemaphoresEXT</name></proto>
+            <param><ptype>GLsizei</ptype> <name>n</name></param>
+            <param len="count"><ptype>GLuint</ptype> *<name>semaphores</name></param>
+        </command>
+        <command>
             <proto><ptype>GLuint</ptype> <name>glGenSymbolsEXT</name></proto>
             <param group="DataTypeEXT"><ptype>GLenum</ptype> <name>datatype</name></param>
             <param group="VertexShaderStorageTypeEXT"><ptype>GLenum</ptype> <name>storagetype</name></param>
             <param group="ParameterRangeEXT"><ptype>GLenum</ptype> <name>range</name></param>
             <param><ptype>GLuint</ptype> <name>components</name></param>
         </command>
         <command>
             <proto>void <name>glGenTextures</name></proto>
             <param><ptype>GLsizei</ptype> <name>n</name></param>
             <param group="Texture" len="n"><ptype>GLuint</ptype> *<name>textures</name></param>
@@ -14872,20 +15158,29 @@ typedef unsigned int GLhandleARB;
             <glx type="vendor" opcode="1428"/>
         </command>
         <command>
             <proto>void <name>glGetFramebufferAttachmentParameterivOES</name></proto>
             <param><ptype>GLenum</ptype> <name>target</name></param>
             <param><ptype>GLenum</ptype> <name>attachment</name></param>
             <param><ptype>GLenum</ptype> <name>pname</name></param>
             <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
         </command>
         <command>
+            <proto>void <name>glGetFramebufferParameterfvAMD</name></proto>
+            <param><ptype>GLenum</ptype> <name>target</name></param>
+            <param><ptype>GLenum</ptype> <name>pname</name></param>
+            <param><ptype>GLuint</ptype> <name>numsamples</name></param>
+            <param><ptype>GLuint</ptype> <name>pixelindex</name></param>
+            <param><ptype>GLsizei</ptype> <name>size</name></param>
+            <param><ptype>GLfloat</ptype> *<name>values</name></param>
+        </command>
+        <command>
             <proto>void <name>glGetFramebufferParameteriv</name></proto>
             <param><ptype>GLenum</ptype> <name>target</name></param>
             <param><ptype>GLenum</ptype> <name>pname</name></param>
             <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
         </command>
         <command>
             <proto>void <name>glGetFramebufferParameterivEXT</name></proto>
             <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
             <param group="GetFramebufferParameter"><ptype>GLenum</ptype> <name>pname</name></param>
             <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
@@ -14895,20 +15190,21 @@ typedef unsigned int GLhandleARB;
             <param><ptype>GLuint</ptype> <name>target</name></param>
         </command>
         <command>
             <proto><ptype>GLenum</ptype> <name>glGetGraphicsResetStatus</name></proto>
         </command>
         <command>
             <proto><ptype>GLenum</ptype> <name>glGetGraphicsResetStatusARB</name></proto>
         </command>
         <command>
             <proto><ptype>GLenum</ptype> <name>glGetGraphicsResetStatusEXT</name></proto>
+            <alias name="glGetGraphicsResetStatus"/>
         </command>
         <command>
             <proto><ptype>GLenum</ptype> <name>glGetGraphicsResetStatusKHR</name></proto>
             <alias name="glGetGraphicsResetStatus"/>
         </command>
         <command>
             <proto group="handleARB"><ptype>GLhandleARB</ptype> <name>glGetHandleARB</name></proto>
             <param><ptype>GLenum</ptype> <name>pname</name></param>
         </command>
         <command>
@@ -15250,20 +15546,26 @@ typedef unsigned int GLhandleARB;
             <param><ptype>GLenum</ptype> <name>pname</name></param>
             <param len="COMPSIZE(pname)"><ptype>GLfixed</ptype> *<name>params</name></param>
         </command>
         <command>
             <proto>void <name>glGetMaterialxvOES</name></proto>
             <param><ptype>GLenum</ptype> <name>face</name></param>
             <param><ptype>GLenum</ptype> <name>pname</name></param>
             <param len="COMPSIZE(pname)"><ptype>GLfixed</ptype> *<name>params</name></param>
         </command>
         <command>
+            <proto>void <name>glGetMemoryObjectParameterivEXT</name></proto>
+            <param><ptype>GLuint</ptype> <name>memoryObject</name></param>
+            <param group="MemoryObjectParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+            <param><ptype>GLint</ptype> *<name>params</name></param>
+        </command>
+        <command>
             <proto>void <name>glGetMinmax</name></proto>
             <param group="MinmaxTarget"><ptype>GLenum</ptype> <name>target</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>reset</name></param>
             <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
             <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
             <param len="COMPSIZE(target,format,type)">void *<name>values</name></param>
             <glx type="single" opcode="157"/>
             <glx type="render" opcode="338" name="glGetMinmaxPBO" comment="PBO protocol"/>
         </command>
         <command>
@@ -15448,20 +15750,29 @@ typedef unsigned int GLhandleARB;
             <param>void *<name>data</name></param>
         </command>
         <command>
             <proto>void <name>glGetNamedBufferSubDataEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>buffer</name></param>
             <param><ptype>GLintptr</ptype> <name>offset</name></param>
             <param><ptype>GLsizeiptr</ptype> <name>size</name></param>
             <param len="COMPSIZE(size)">void *<name>data</name></param>
         </command>
         <command>
+            <proto>void <name>glGetNamedFramebufferParameterfvAMD</name></proto>
+            <param><ptype>GLuint</ptype> <name>framebuffer</name></param>
+            <param><ptype>GLenum</ptype> <name>pname</name></param>
+            <param><ptype>GLuint</ptype> <name>numsamples</name></param>
+            <param><ptype>GLuint</ptype> <name>pixelindex</name></param>
+            <param><ptype>GLsizei</ptype> <name>size</name></param>
+            <param><ptype>GLfloat</ptype> *<name>values</name></param>
+        </command>
+        <command>
             <proto>void <name>glGetNamedFramebufferAttachmentParameteriv</name></proto>
             <param><ptype>GLuint</ptype> <name>framebuffer</name></param>
             <param><ptype>GLenum</ptype> <name>attachment</name></param>
             <param><ptype>GLenum</ptype> <name>pname</name></param>
             <param><ptype>GLint</ptype> *<name>params</name></param>
         </command>
         <command>
             <proto>void <name>glGetNamedFramebufferAttachmentParameterivEXT</name></proto>
             <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
             <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
@@ -16322,20 +16633,26 @@ typedef unsigned int GLhandleARB;
             <param><ptype>GLenum</ptype> <name>pname</name></param>
             <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
         </command>
         <command>
             <proto>void <name>glGetSamplerParameteriv</name></proto>
             <param><ptype>GLuint</ptype> <name>sampler</name></param>
             <param><ptype>GLenum</ptype> <name>pname</name></param>
             <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
         </command>
         <command>
+            <proto>void <name>glGetSemaphoreParameterui64vEXT</name></proto>
+            <param><ptype>GLuint</ptype> <name>semaphore</name></param>
+            <param group="SemaphoreParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+            <param><ptype>GLuint64</ptype> *<name>params</name></param>
+        </command>
+        <command>
             <proto>void <name>glGetSeparableFilter</name></proto>
             <param group="SeparableTarget"><ptype>GLenum</ptype> <name>target</name></param>
             <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
             <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
             <param len="COMPSIZE(target,format,type)">void *<name>row</name></param>
             <param len="COMPSIZE(target,format,type)">void *<name>column</name></param>
             <param len="COMPSIZE(target,format,type)">void *<name>span</name></param>
             <glx type="single" opcode="153"/>
             <glx type="render" opcode="343" name="glGetSeparableFilterPBO" comment="PBO protocol"/>
         </command>
@@ -16622,20 +16939,25 @@ typedef unsigned int GLhandleARB;
             <proto>void <name>glGetTexParameterxvOES</name></proto>
             <param><ptype>GLenum</ptype> <name>target</name></param>
             <param><ptype>GLenum</ptype> <name>pname</name></param>
             <param len="COMPSIZE(pname)"><ptype>GLfixed</ptype> *<name>params</name></param>
         </command>
         <command>
             <proto><ptype>GLuint64</ptype> <name>glGetTextureHandleARB</name></proto>
             <param><ptype>GLuint</ptype> <name>texture</name></param>
         </command>
         <command>
+            <proto><ptype>GLuint64</ptype> <name>glGetTextureHandleIMG</name></proto>
+            <param><ptype>GLuint</ptype> <name>texture</name></param>
+            <alias name="glGetTextureHandleARB"/>
+        </command>
+        <command>
             <proto><ptype>GLuint64</ptype> <name>glGetTextureHandleNV</name></proto>
             <param><ptype>GLuint</ptype> <name>texture</name></param>
         </command>
         <command>
             <proto>void <name>glGetTextureImage</name></proto>
             <param><ptype>GLuint</ptype> <name>texture</name></param>
             <param><ptype>GLint</ptype> <name>level</name></param>
             <param><ptype>GLenum</ptype> <name>format</name></param>
             <param><ptype>GLenum</ptype> <name>type</name></param>
             <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
@@ -16731,20 +17053,26 @@ typedef unsigned int GLhandleARB;
             <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
             <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
             <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
         </command>
         <command>
             <proto><ptype>GLuint64</ptype> <name>glGetTextureSamplerHandleARB</name></proto>
             <param><ptype>GLuint</ptype> <name>texture</name></param>
             <param><ptype>GLuint</ptype> <name>sampler</name></param>
         </command>
         <command>
+            <proto><ptype>GLuint64</ptype> <name>glGetTextureSamplerHandleIMG</name></proto>
+            <param><ptype>GLuint</ptype> <name>texture</name></param>
+            <param><ptype>GLuint</ptype> <name>sampler</name></param>
+            <alias name="glGetTextureSamplerHandleARB"/>
+        </command>
+        <command>
             <proto><ptype>GLuint64</ptype> <name>glGetTextureSamplerHandleNV</name></proto>
             <param><ptype>GLuint</ptype> <name>texture</name></param>
             <param><ptype>GLuint</ptype> <name>sampler</name></param>
         </command>
         <command>
             <proto>void <name>glGetTextureSubImage</name></proto>
             <param><ptype>GLuint</ptype> <name>texture</name></param>
             <param><ptype>GLint</ptype> <name>level</name></param>
             <param><ptype>GLint</ptype> <name>xoffset</name></param>
             <param><ptype>GLint</ptype> <name>yoffset</name></param>
@@ -16921,20 +17249,31 @@ typedef unsigned int GLhandleARB;
             <param len="COMPSIZE(program,location)"><ptype>GLuint</ptype> *<name>params</name></param>
         </command>
         <command>
             <proto>void <name>glGetUniformuivEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param len="COMPSIZE(program,location)"><ptype>GLuint</ptype> *<name>params</name></param>
             <alias name="glGetUniformuiv"/>
         </command>
         <command>
+            <proto>void <name>glGetUnsignedBytevEXT</name></proto>
+            <param group="GetPName"><ptype>GLenum</ptype> <name>pname</name></param>
+            <param len="COMPSIZE(pname)"><ptype>GLubyte</ptype> *<name>data</name></param>
+        </command>
+        <command>
+            <proto>void <name>glGetUnsignedBytei_vEXT</name></proto>
+            <param><ptype>GLenum</ptype> <name>target</name></param>
+            <param><ptype>GLuint</ptype> <name>index</name></param>
+            <param len="COMPSIZE(target)"><ptype>GLubyte</ptype> *<name>data</name></param>
+        </command>
+        <command>
             <proto>void <name>glGetVariantArrayObjectfvATI</name></proto>
             <param><ptype>GLuint</ptype> <name>id</name></param>
             <param group="ArrayObjectPNameATI"><ptype>GLenum</ptype> <name>pname</name></param>
             <param len="1"><ptype>GLfloat</ptype> *<name>params</name></param>
         </command>
         <command>
             <proto>void <name>glGetVariantArrayObjectivATI</name></proto>
             <param><ptype>GLuint</ptype> <name>id</name></param>
             <param group="ArrayObjectPNameATI"><ptype>GLenum</ptype> <name>pname</name></param>
             <param len="1"><ptype>GLint</ptype> *<name>params</name></param>
@@ -17461,20 +17800,21 @@ typedef unsigned int GLhandleARB;
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
             <param len="bufSize"><ptype>GLfloat</ptype> *<name>params</name></param>
         </command>
         <command>
             <proto>void <name>glGetnUniformfvEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
             <param len="bufSize"><ptype>GLfloat</ptype> *<name>params</name></param>
+            <alias name="glGetnUniformfv"/>
         </command>
         <command>
             <proto>void <name>glGetnUniformfvKHR</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
             <param><ptype>GLfloat</ptype> *<name>params</name></param>
             <alias name="glGetnUniformfv"/>
         </command>
         <command>
@@ -17497,20 +17837,21 @@ typedef unsigned int GLhandleARB;
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
             <param len="bufSize"><ptype>GLint</ptype> *<name>params</name></param>
         </command>
         <command>
             <proto>void <name>glGetnUniformivEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
             <param len="bufSize"><ptype>GLint</ptype> *<name>params</name></param>
+            <alias name="glGetnUniformiv"/>
         </command>
         <command>
             <proto>void <name>glGetnUniformivKHR</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
             <param><ptype>GLint</ptype> *<name>params</name></param>
             <alias name="glGetnUniformiv"/>
         </command>
         <command>
@@ -17626,20 +17967,59 @@ typedef unsigned int GLhandleARB;
             <param group="ImageTransformPNameHP"><ptype>GLenum</ptype> <name>pname</name></param>
             <param><ptype>GLint</ptype> <name>param</name></param>
         </command>
         <command>
             <proto>void <name>glImageTransformParameterivHP</name></proto>
             <param group="ImageTransformTargetHP"><ptype>GLenum</ptype> <name>target</name></param>
             <param group="ImageTransformPNameHP"><ptype>GLenum</ptype> <name>pname</name></param>
             <param len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
         </command>
         <command>
+            <proto>void <name>glImportMemoryFdEXT</name></proto>
+            <param><ptype>GLuint</ptype> <name>memory</name></param>
+            <param><ptype>GLuint64</ptype> <name>size</name></param>
+            <param group="ExternalHandleType"><ptype>GLenum</ptype> <name>handleType</name></param>
+            <param><ptype>GLint</ptype> <name>fd</name></param>
+        </command>
+        <command>
+            <proto>void <name>glImportMemoryWin32HandleEXT</name></proto>
+            <param><ptype>GLuint</ptype> <name>memory</name></param>
+            <param><ptype>GLuint64</ptype> <name>size</name></param>
+            <param group="ExternalHandleType"><ptype>GLenum</ptype> <name>handleType</name></param>
+            <param>void *<name>handle</name></param>
+        </command>
+        <command>
+            <proto>void <name>glImportMemoryWin32NameEXT</name></proto>
+            <param><ptype>GLuint</ptype> <name>memory</name></param>
+            <param><ptype>GLuint64</ptype> <name>size</name></param>
+            <param group="ExternalHandleType"><ptype>GLenum</ptype> <name>handleType</name></param>
+            <param>const void *<name>name</name></param>
+        </command>
+        <command>
+            <proto>void <name>glImportSemaphoreFdEXT</name></proto>
+            <param><ptype>GLuint</ptype> <name>semaphore</name></param>
+            <param group="ExternalHandleType"><ptype>GLenum</ptype> <name>handleType</name></param>
+            <param><ptype>GLint</ptype> <name>fd</name></param>
+        </command>
+        <command>
+            <proto>void <name>glImportSemaphoreWin32HandleEXT</name></proto>
+            <param><ptype>GLuint</ptype> <name>semaphore</name></param>
+            <param group="ExternalHandleType"><ptype>GLenum</ptype> <name>handleType</name></param>
+            <param>void *<name>handle</name></param>
+        </command>
+        <command>
+            <proto>void <name>glImportSemaphoreWin32NameEXT</name></proto>
+            <param><ptype>GLuint</ptype> <name>semaphore</name></param>
+            <param group="ExternalHandleType"><ptype>GLenum</ptype> <name>handleType</name></param>
+            <param>const void *<name>name</name></param>
+        </command>
+        <command>
             <proto group="sync"><ptype>GLsync</ptype> <name>glImportSyncEXT</name></proto>
             <param><ptype>GLenum</ptype> <name>external_sync_type</name></param>
             <param><ptype>GLintptr</ptype> <name>external_sync</name></param>
             <param><ptype>GLbitfield</ptype> <name>flags</name></param>
         </command>
         <command>
             <proto>void <name>glIndexFormatNV</name></proto>
             <param><ptype>GLenum</ptype> <name>type</name></param>
             <param><ptype>GLsizei</ptype> <name>stride</name></param>
         </command>
@@ -17914,20 +18294,24 @@ typedef unsigned int GLhandleARB;
         <command>
             <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsImageHandleResidentNV</name></proto>
             <param><ptype>GLuint64</ptype> <name>handle</name></param>
         </command>
         <command>
             <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsList</name></proto>
             <param group="List"><ptype>GLuint</ptype> <name>list</name></param>
             <glx type="single" opcode="141"/>
         </command>
         <command>
+            <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsMemoryObjectEXT</name></proto>
+            <param><ptype>GLuint</ptype> <name>memoryObject</name></param>
+        </command>
+        <command>
             <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsNameAMD</name></proto>
             <param><ptype>GLenum</ptype> <name>identifier</name></param>
             <param><ptype>GLuint</ptype> <name>name</name></param>
         </command>
         <command>
             <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsNamedBufferResidentNV</name></proto>
             <param><ptype>GLuint</ptype> <name>buffer</name></param>
         </command>
         <command>
             <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsNamedStringARB</name></proto>
@@ -18006,20 +18390,24 @@ typedef unsigned int GLhandleARB;
             <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsRenderbufferEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
             <alias name="glIsRenderbuffer"/>
             <glx type="vendor" opcode="1422"/>
         </command>
         <command>
             <proto><ptype>GLboolean</ptype> <name>glIsRenderbufferOES</name></proto>
             <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
         </command>
         <command>
+            <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsSemaphoreEXT</name></proto>
+            <param><ptype>GLuint</ptype> <name>semaphore</name></param>
+        </command>
+        <command>
             <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsSampler</name></proto>
             <param><ptype>GLuint</ptype> <name>sampler</name></param>
         </command>
         <command>
             <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsShader</name></proto>
             <param><ptype>GLuint</ptype> <name>shader</name></param>
             <glx type="single" opcode="196"/>
         </command>
         <command>
             <proto><ptype>GLboolean</ptype> <name>glIsStateNV</name></proto>
@@ -18080,20 +18468,51 @@ typedef unsigned int GLhandleARB;
             <proto><ptype>GLboolean</ptype> <name>glIsVertexArrayOES</name></proto>
             <param><ptype>GLuint</ptype> <name>array</name></param>
             <alias name="glIsVertexArray"/>
         </command>
         <command>
             <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsVertexAttribEnabledAPPLE</name></proto>
             <param><ptype>GLuint</ptype> <name>index</name></param>
             <param><ptype>GLenum</ptype> <name>pname</name></param>
         </command>
         <command>
+            <proto>void <name>glLGPUCopyImageSubDataNVX</name></proto>
+            <param><ptype>GLuint</ptype> <name>sourceGpu</name></param>
+            <param><ptype>GLbitfield</ptype> <name>destinationGpuMask</name></param>
+            <param><ptype>GLuint</ptype> <name>srcName</name></param>
+            <param><ptype>GLenum</ptype> <name>srcTarget</name></param>
+            <param><ptype>GLint</ptype> <name>srcLevel</name></param>
+            <param><ptype>GLint</ptype> <name>srcX</name></param>
+            <param><ptype>GLint</ptype> <name>srxY</name></param>
+            <param><ptype>GLint</ptype> <name>srcZ</name></param>
+            <param><ptype>GLuint</ptype> <name>dstName</name></param>
+            <param><ptype>GLenum</ptype> <name>dstTarget</name></param>
+            <param><ptype>GLint</ptype> <name>dstLevel</name></param>
+            <param><ptype>GLint</ptype> <name>dstX</name></param>
+            <param><ptype>GLint</ptype> <name>dstY</name></param>
+            <param><ptype>GLint</ptype> <name>dstZ</name></param>
+            <param><ptype>GLsizei</ptype> <name>width</name></param>
+            <param><ptype>GLsizei</ptype> <name>height</name></param>
+            <param><ptype>GLsizei</ptype> <name>depth</name></param>
+        </command>
+        <command>
+            <proto>void <name>glLGPUInterlockNVX</name></proto>
+        </command>
+        <command>
+            <proto>void <name>glLGPUNamedBufferSubDataNVX</name></proto>
+            <param><ptype>GLbitfield</ptype> <name>gpuMask</name></param>
+            <param><ptype>GLuint</ptype> <name>buffer</name></param>
+            <param><ptype>GLintptr</ptype> <name>offset</name></param>
+            <param><ptype>GLsizeiptr</ptype> <name>size</name></param>
+            <param>const void *<name>data</name></param>
+        </command>
+        <command>
             <proto>void <name>glLabelObjectEXT</name></proto>
             <param><ptype>GLenum</ptype> <name>type</name></param>
             <param><ptype>GLuint</ptype> <name>object</name></param>
             <param><ptype>GLsizei</ptype> <name>length</name></param>
             <param>const <ptype>GLchar</ptype> *<name>label</name></param>
         </command>
         <command>
             <proto>void <name>glLightEnviSGIX</name></proto>
             <param group="LightEnvParameterSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
             <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
@@ -18897,20 +19316,26 @@ typedef unsigned int GLhandleARB;
         <command>
             <proto>void <name>glMemoryBarrierByRegion</name></proto>
             <param><ptype>GLbitfield</ptype> <name>barriers</name></param>
         </command>
         <command>
             <proto>void <name>glMemoryBarrierEXT</name></proto>
             <param><ptype>GLbitfield</ptype> <name>barriers</name></param>
             <alias name="glMemoryBarrier"/>
         </command>
         <command>
+            <proto>void <name>glMemoryObjectParameterivEXT</name></proto>
+            <param><ptype>GLuint</ptype> <name>memoryObject</name></param>
+            <param group="MemoryObjectParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+            <param>const <ptype>GLint</ptype> *<name>params</name></param>
+        </command>
+        <command>
             <proto>void <name>glMinSampleShading</name></proto>
             <param group="ColorF"><ptype>GLfloat</ptype> <name>value</name></param>
         </command>
         <command>
             <proto>void <name>glMinSampleShadingARB</name></proto>
             <param group="ColorF"><ptype>GLfloat</ptype> <name>value</name></param>
             <alias name="glMinSampleShading"/>
         </command>
         <command>
             <proto>void <name>glMinSampleShadingOES</name></proto>
@@ -18982,61 +19407,61 @@ typedef unsigned int GLhandleARB;
         <command>
             <proto>void <name>glMultiDrawArraysEXT</name></proto>
             <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
             <param len="COMPSIZE(primcount)">const <ptype>GLint</ptype> *<name>first</name></param>
             <param len="COMPSIZE(primcount)">const <ptype>GLsizei</ptype> *<name>count</name></param>
             <param><ptype>GLsizei</ptype> <name>primcount</name></param>
             <alias name="glMultiDrawArrays"/>
         </command>
         <command>
             <proto>void <name>glMultiDrawArraysIndirect</name></proto>
-            <param><ptype>GLenum</ptype> <name>mode</name></param>
+            <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
             <param len="COMPSIZE(drawcount,stride)">const void *<name>indirect</name></param>
             <param><ptype>GLsizei</ptype> <name>drawcount</name></param>
             <param><ptype>GLsizei</ptype> <name>stride</name></param>
         </command>
         <command>
             <proto>void <name>glMultiDrawArraysIndirectAMD</name></proto>
-            <param><ptype>GLenum</ptype> <name>mode</name></param>
+            <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
             <param>const void *<name>indirect</name></param>
             <param><ptype>GLsizei</ptype> <name>primcount</name></param>
             <param><ptype>GLsizei</ptype> <name>stride</name></param>
             <alias name="glMultiDrawArraysIndirect"/>
         </command>
         <command>
             <proto>void <name>glMultiDrawArraysIndirectBindlessCountNV</name></proto>
-            <param><ptype>GLenum</ptype> <name>mode</name></param>
+            <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
             <param>const void *<name>indirect</name></param>
             <param><ptype>GLsizei</ptype> <name>drawCount</name></param>
             <param><ptype>GLsizei</ptype> <name>maxDrawCount</name></param>
             <param><ptype>GLsizei</ptype> <name>stride</name></param>
             <param><ptype>GLint</ptype> <name>vertexBufferCount</name></param>
         </command>
         <command>
             <proto>void <name>glMultiDrawArraysIndirectBindlessNV</name></proto>
-            <param><ptype>GLenum</ptype> <name>mode</name></param>
+            <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
             <param>const void *<name>indirect</name></param>
             <param><ptype>GLsizei</ptype> <name>drawCount</name></param>
             <param><ptype>GLsizei</ptype> <name>stride</name></param>
             <param><ptype>GLint</ptype> <name>vertexBufferCount</name></param>
         </command>
         <command>
             <proto>void <name>glMultiDrawArraysIndirectCountARB</name></proto>
-            <param><ptype>GLenum</ptype> <name>mode</name></param>
+            <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
             <param><ptype>GLintptr</ptype> <name>indirect</name></param>
             <param><ptype>GLintptr</ptype> <name>drawcount</name></param>
             <param><ptype>GLsizei</ptype> <name>maxdrawcount</name></param>
             <param><ptype>GLsizei</ptype> <name>stride</name></param>
         </command>
         <command>
             <proto>void <name>glMultiDrawArraysIndirectEXT</name></proto>
-            <param><ptype>GLenum</ptype> <name>mode</name></param>
+            <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
             <param len="COMPSIZE(drawcount,stride)">const void *<name>indirect</name></param>
             <param><ptype>GLsizei</ptype> <name>drawcount</name></param>
             <param><ptype>GLsizei</ptype> <name>stride</name></param>
             <alias name="glMultiDrawArraysIndirect"/>
         </command>
         <command>
             <proto>void <name>glMultiDrawElementArrayAPPLE</name></proto>
             <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
             <param len="primcount">const <ptype>GLint</ptype> *<name>first</name></param>
             <param len="primcount">const <ptype>GLsizei</ptype> *<name>count</name></param>
@@ -19045,104 +19470,104 @@ typedef unsigned int GLhandleARB;
         <command>
             <proto>void <name>glMultiDrawElements</name></proto>
             <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
             <param len="COMPSIZE(drawcount)">const <ptype>GLsizei</ptype> *<name>count</name></param>
             <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
             <param len="COMPSIZE(drawcount)">const void *const*<name>indices</name></param>
             <param><ptype>GLsizei</ptype> <name>drawcount</name></param>
         </command>
         <command>
             <proto>void <name>glMultiDrawElementsBaseVertex</name></proto>
-            <param><ptype>GLenum</ptype> <name>mode</name></param>
+            <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
             <param len="COMPSIZE(drawcount)">const <ptype>GLsizei</ptype> *<name>count</name></param>
             <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
             <param len="COMPSIZE(drawcount)">const void *const*<name>indices</name></param>
             <param><ptype>GLsizei</ptype> <name>drawcount</name></param>
             <param len="COMPSIZE(drawcount)">const <ptype>GLint</ptype> *<name>basevertex</name></param>
         </command>
         <command>
             <proto>void <name>glMultiDrawElementsBaseVertexEXT</name></proto>
-            <param><ptype>GLenum</ptype> <name>mode</name></param>
+            <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
             <param len="COMPSIZE(drawcount)">const <ptype>GLsizei</ptype> *<name>count</name></param>
             <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
             <param len="COMPSIZE(drawcount)">const void *const*<name>indices</name></param>
             <param><ptype>GLsizei</ptype> <name>primcount</name></param>
             <param len="COMPSIZE(drawcount)">const <ptype>GLint</ptype> *<name>basevertex</name></param>
             <alias name="glMultiDrawElementsBaseVertex"/>
         </command>
         <command>
             <proto>void <name>glMultiDrawElementsBaseVertexOES</name></proto>
-            <param><ptype>GLenum</ptype> <name>mode</name></param>
+            <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
             <param len="COMPSIZE(drawcount)">const <ptype>GLsizei</ptype> *<name>count</name></param>
             <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
             <param len="COMPSIZE(drawcount)">const void *const*<name>indices</name></param>
             <param><ptype>GLsizei</ptype> <name>primcount</name></param>
             <param len="COMPSIZE(drawcount)">const <ptype>GLint</ptype> *<name>basevertex</name></param>
             <alias name="glMultiDrawElementsBaseVertex"/>
         </command>
         <command>
             <proto>void <name>glMultiDrawElementsEXT</name></proto>
             <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
             <param len="COMPSIZE(primcount)">const <ptype>GLsizei</ptype> *<name>count</name></param>
             <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
             <param len="COMPSIZE(primcount)">const void *const*<name>indices</name></param>
             <param><ptype>GLsizei</ptype> <name>primcount</name></param>
             <alias name="glMultiDrawElements"/>
         </command>
         <command>
             <proto>void <name>glMultiDrawElementsIndirect</name></proto>
-            <param><ptype>GLenum</ptype> <name>mode</name></param>
+            <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
             <param><ptype>GLenum</ptype> <name>type</name></param>
             <param len="COMPSIZE(drawcount,stride)">const void *<name>indirect</name></param>
             <param><ptype>GLsizei</ptype> <name>drawcount</name></param>
             <param><ptype>GLsizei</ptype> <name>stride</name></param>
         </command>
         <command>
             <proto>void <name>glMultiDrawElementsIndirectAMD</name></proto>
-            <param><ptype>GLenum</ptype> <name>mode</name></param>
+            <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
             <param><ptype>GLenum</ptype> <name>type</name></param>
             <param>const void *<name>indirect</name></param>
             <param><ptype>GLsizei</ptype> <name>primcount</name></param>
             <param><ptype>GLsizei</ptype> <name>stride</name></param>
             <alias name="glMultiDrawElementsIndirect"/>
         </command>
         <command>
             <proto>void <name>glMultiDrawElementsIndirectBindlessCountNV</name></proto>
-            <param><ptype>GLenum</ptype> <name>mode</name></param>
+            <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
             <param><ptype>GLenum</ptype> <name>type</name></param>
             <param>const void *<name>indirect</name></param>
             <param><ptype>GLsizei</ptype> <name>drawCount</name></param>
             <param><ptype>GLsizei</ptype> <name>maxDrawCount</name></param>
             <param><ptype>GLsizei</ptype> <name>stride</name></param>
             <param><ptype>GLint</ptype> <name>vertexBufferCount</name></param>
         </command>
         <command>
             <proto>void <name>glMultiDrawElementsIndirectBindlessNV</name></proto>
-            <param><ptype>GLenum</ptype> <name>mode</name></param>
+            <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
             <param><ptype>GLenum</ptype> <name>type</name></param>
             <param>const void *<name>indirect</name></param>
             <param><ptype>GLsizei</ptype> <name>drawCount</name></param>
             <param><ptype>GLsizei</ptype> <name>stride</name></param>
             <param><ptype>GLint</ptype> <name>vertexBufferCount</name></param>
         </command>
         <command>
             <proto>void <name>glMultiDrawElementsIndirectCountARB</name></proto>
-            <param><ptype>GLenum</ptype> <name>mode</name></param>
+            <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
             <param><ptype>GLenum</ptype> <name>type</name></param>
             <param><ptype>GLintptr</ptype> <name>indirect</name></param>
             <param><ptype>GLintptr</ptype> <name>drawcount</name></param>
             <param><ptype>GLsizei</ptype> <name>maxdrawcount</name></param>
             <param><ptype>GLsizei</ptype> <name>stride</name></param>
         </command>
         <command>
             <proto>void <name>glMultiDrawElementsIndirectEXT</name></proto>
-            <param><ptype>GLenum</ptype> <name>mode</name></param>
+            <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
             <param><ptype>GLenum</ptype> <name>type</name></param>
             <param len="COMPSIZE(drawcount,stride)">const void *<name>indirect</name></param>
             <param><ptype>GLsizei</ptype> <name>drawcount</name></param>
             <param><ptype>GLsizei</ptype> <name>stride</name></param>
             <alias name="glMultiDrawElementsIndirect"/>
         </command>
         <command>
             <proto>void <name>glMultiDrawRangeElementArrayAPPLE</name></proto>
             <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
             <param><ptype>GLuint</ptype> <name>start</name></param>
@@ -20046,20 +20471,117 @@ typedef unsigned int GLhandleARB;
             <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
             <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
             <param><ptype>GLsizei</ptype> <name>width</name></param>
             <param><ptype>GLsizei</ptype> <name>height</name></param>
             <param><ptype>GLsizei</ptype> <name>depth</name></param>
             <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
             <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
             <param len="COMPSIZE(format,type,width,height,depth)">const void *<name>pixels</name></param>
         </command>
         <command>
+            <proto>void <name>glMulticastBarrierNV</name></proto>
+        </command>
+        <command>
+            <proto>void <name>glMulticastBlitFramebufferNV</name></proto>
+            <param><ptype>GLuint</ptype> <name>srcGpu</name></param>
+            <param><ptype>GLuint</ptype> <name>dstGpu</name></param>
+            <param><ptype>GLint</ptype> <name>srcX0</name></param>
+            <param><ptype>GLint</ptype> <name>srcY0</name></param>
+            <param><ptype>GLint</ptype> <name>srcX1</name></param>
+            <param><ptype>GLint</ptype> <name>srcY1</name></param>
+            <param><ptype>GLint</ptype> <name>dstX0</name></param>
+            <param><ptype>GLint</ptype> <name>dstY0</name></param>
+            <param><ptype>GLint</ptype> <name>dstX1</name></param>
+            <param><ptype>GLint</ptype> <name>dstY1</name></param>
+            <param><ptype>GLbitfield</ptype> <name>mask</name></param>
+            <param><ptype>GLenum</ptype> <name>filter</name></param>
+        </command>
+        <command>
+            <proto>void <name>glMulticastBufferSubDataNV</name></proto>
+            <param><ptype>GLbitfield</ptype> <name>gpuMask</name></param>
+            <param><ptype>GLuint</ptype> <name>buffer</name></param>
+            <param><ptype>GLintptr</ptype> <name>offset</name></param>
+            <param><ptype>GLsizeiptr</ptype> <name>size</name></param>
+            <param>const <ptype>GLvoid</ptype> *<name>data</name></param>
+        </command>
+        <command>
+            <proto>void <name>glMulticastCopyBufferSubDataNV</name></proto>
+            <param><ptype>GLuint</ptype> <name>readGpu</name></param>
+            <param><ptype>GLbitfield</ptype> <name>writeGpuMask</name></param>
+            <param><ptype>GLuint</ptype> <name>readBuffer</name></param>
+            <param><ptype>GLuint</ptype> <name>writeBuffer</name></param>
+            <param><ptype>GLintptr</ptype> <name>readOffset</name></param>
+            <param><ptype>GLintptr</ptype> <name>writeOffset</name></param>
+            <param><ptype>GLsizeiptr</ptype> <name>size</name></param>
+        </command>
+        <command>
+            <proto>void <name>glMulticastCopyImageSubDataNV</name></proto>
+            <param><ptype>GLuint</ptype> <name>srcGpu</name></param>
+            <param><ptype>GLbitfield</ptype> <name>dstGpuMask</name></param>
+            <param><ptype>GLuint</ptype> <name>srcName</name></param>
+            <param><ptype>GLenum</ptype> <name>srcTarget</name></param>
+            <param><ptype>GLint</ptype> <name>srcLevel</name></param>
+            <param><ptype>GLint</ptype> <name>srcX</name></param>
+            <param><ptype>GLint</ptype> <name>srcY</name></param>
+            <param><ptype>GLint</ptype> <name>srcZ</name></param>
+            <param><ptype>GLuint</ptype> <name>dstName</name></param>
+            <param><ptype>GLenum</ptype> <name>dstTarget</name></param>
+            <param><ptype>GLint</ptype> <name>dstLevel</name></param>
+            <param><ptype>GLint</ptype> <name>dstX</name></param>
+            <param><ptype>GLint</ptype> <name>dstY</name></param>
+            <param><ptype>GLint</ptype> <name>dstZ</name></param>
+            <param><ptype>GLsizei</ptype> <name>srcWidth</name></param>
+            <param><ptype>GLsizei</ptype> <name>srcHeight</name></param>
+            <param><ptype>GLsizei</ptype> <name>srcDepth</name></param>
+        </command>
+        <command>
+            <proto>void <name>glMulticastFramebufferSampleLocationsfvNV</name></proto>
+            <param><ptype>GLuint</ptype> <name>gpu</name></param>
+            <param><ptype>GLuint</ptype> <name>framebuffer</name></param>
+            <param><ptype>GLuint</ptype> <name>start</name></param>
+            <param><ptype>GLsizei</ptype> <name>count</name></param>
+            <param>const <ptype>GLfloat</ptype> *<name>v</name></param>
+        </command>
+        <command>
+            <proto>void <name>glMulticastGetQueryObjecti64vNV</name></proto>
+            <param><ptype>GLuint</ptype> <name>gpu</name></param>
+            <param><ptype>GLuint</ptype> <name>id</name></param>
+            <param><ptype>GLenum</ptype> <name>pname</name></param>
+            <param><ptype>GLint64</ptype> *<name>params</name></param>
+        </command>
+        <command>
+            <proto>void <name>glMulticastGetQueryObjectivNV</name></proto>
+            <param><ptype>GLuint</ptype> <name>gpu</name></param>
+            <param><ptype>GLuint</ptype> <name>id</name></param>
+            <param><ptype>GLenum</ptype> <name>pname</name></param>
+            <param><ptype>GLint</ptype> *<name>params</name></param>
+        </command>
+        <command>
+            <proto>void <name>glMulticastGetQueryObjectui64vNV</name></proto>
+            <param><ptype>GLuint</ptype> <name>gpu</name></param>
+            <param><ptype>GLuint</ptype> <name>id</name></param>
+            <param><ptype>GLenum</ptype> <name>pname</name></param>
+            <param><ptype>GLuint64</ptype> *<name>params</name></param>
+        </command>
+        <command>
+            <proto>void <name>glMulticastGetQueryObjectuivNV</name></proto>
+            <param><ptype>GLuint</ptype> <name>gpu</name></param>
+            <param><ptype>GLuint</ptype> <name>id</name></param>
+            <param><ptype>GLenum</ptype> <name>pname</name></param>
+            <param><ptype>GLuint</ptype> *<name>params</name></param>
+        </command>
+        <command>
+            <proto>void <name>glMulticastWaitSyncNV</name></proto>
+            <param><ptype>GLuint</ptype> <name>signalGpu</name></param>
+            <param><ptype>GLbitfield</ptype> <name>waitGpuMask</name></param>
+        </command>
+        <command>
             <proto>void <name>glNamedBufferData</name></proto>
             <param><ptype>GLuint</ptype> <name>buffer</name></param>
             <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
             <param>const void *<name>data</name></param>
             <param><ptype>GLenum</ptype> <name>usage</name></param>
         </command>
         <command>
             <proto>void <name>glNamedBufferDataEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>buffer</name></param>
             <param><ptype>GLsizeiptr</ptype> <name>size</name></param>
@@ -20089,20 +20611,27 @@ typedef unsigned int GLhandleARB;
         </command>
         <command>
             <proto>void <name>glNamedBufferStorageEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>buffer</name></param>
             <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
             <param len="size">const void *<name>data</name></param>
             <param><ptype>GLbitfield</ptype> <name>flags</name></param>
             <alias name="glNamedBufferStorage"/>
         </command>
         <command>
+            <proto>void <name>glNamedBufferStorageMemEXT</name></proto>
+            <param><ptype>GLuint</ptype> <name>buffer</name></param>
+            <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+            <param><ptype>GLuint</ptype> <name>memory</name></param>
+            <param><ptype>GLuint64</ptype> <name>offset</name></param>
+        </command>
+        <command>
             <proto>void <name>glNamedBufferSubData</name></proto>
             <param><ptype>GLuint</ptype> <name>buffer</name></param>
             <param><ptype>GLintptr</ptype> <name>offset</name></param>
             <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
             <param len="COMPSIZE(size)">const void *<name>data</name></param>
         </command>
         <command>
             <proto>void <name>glNamedBufferSubDataEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>buffer</name></param>
             <param><ptype>GLintptr</ptype> <name>offset</name></param>
@@ -20175,20 +20704,27 @@ typedef unsigned int GLhandleARB;
             <param>const <ptype>GLfloat</ptype> *<name>v</name></param>
         </command>
         <command>
             <proto>void <name>glNamedFramebufferTexture</name></proto>
             <param><ptype>GLuint</ptype> <name>framebuffer</name></param>
             <param><ptype>GLenum</ptype> <name>attachment</name></param>
             <param><ptype>GLuint</ptype> <name>texture</name></param>
             <param><ptype>GLint</ptype> <name>level</name></param>
         </command>
         <command>
+            <proto>void <name>glNamedFramebufferSamplePositionsfvAMD</name></proto>
+            <param><ptype>GLuint</ptype> <name>framebuffer</name></param>
+            <param><ptype>GLuint</ptype> <name>numsamples</name></param>
+            <param><ptype>GLuint</ptype> <name>pixelindex</name></param>
+            <param>const <ptype>GLfloat</ptype> *<name>values</name></param>
+        </command>
+        <command>
             <proto>void <name>glNamedFramebufferTexture1DEXT</name></proto>
             <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
             <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
             <param group="TextureTarget"><ptype>GLenum</ptype> <name>textarget</name></param>
             <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
             <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
         </command>
         <command>
             <proto>void <name>glNamedFramebufferTexture2DEXT</name></proto>
             <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
@@ -21703,21 +22239,21 @@ typedef unsigned int GLhandleARB;
             <proto>void <name>glProgramUniform1dEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLdouble</ptype> <name>x</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniform1dv</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
-            <param len="1">const <ptype>GLdouble</ptype> *<name>value</name></param>
+            <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniform1dvEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniform1f</name></proto>
@@ -21730,21 +22266,21 @@ typedef unsigned int GLhandleARB;
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLfloat</ptype> <name>v0</name></param>
             <alias name="glProgramUniform1f"/>
         </command>
         <command>
             <proto>void <name>glProgramUniform1fv</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
-            <param len="1">const <ptype>GLfloat</ptype> *<name>value</name></param>
+            <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniform1fvEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
             <alias name="glProgramUniform1fv"/>
         </command>
         <command>
@@ -21784,21 +22320,21 @@ typedef unsigned int GLhandleARB;
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLint</ptype> <name>v0</name></param>
             <alias name="glProgramUniform1i"/>
         </command>
         <command>
             <proto>void <name>glProgramUniform1iv</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
-            <param len="1">const <ptype>GLint</ptype> *<name>value</name></param>
+            <param len="count">const <ptype>GLint</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniform1ivEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param len="count">const <ptype>GLint</ptype> *<name>value</name></param>
             <alias name="glProgramUniform1iv"/>
         </command>
         <command>
@@ -21838,21 +22374,21 @@ typedef unsigned int GLhandleARB;
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLuint</ptype> <name>v0</name></param>
             <alias name="glProgramUniform1ui"/>
         </command>
         <command>
             <proto>void <name>glProgramUniform1uiv</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
-            <param len="1">const <ptype>GLuint</ptype> *<name>value</name></param>
+            <param len="count">const <ptype>GLuint</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniform1uivEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param len="count">const <ptype>GLuint</ptype> *<name>value</name></param>
             <alias name="glProgramUniform1uiv"/>
         </command>
         <command>
@@ -21867,28 +22403,28 @@ typedef unsigned int GLhandleARB;
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLdouble</ptype> <name>x</name></param>
             <param><ptype>GLdouble</ptype> <name>y</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniform2dv</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
-            <param len="2">const <ptype>GLdouble</ptype> *<name>value</name></param>
+            <param len="count*2">const <ptype>GLdouble</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniform2dvEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
-            <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+            <param len="count*2">const <ptype>GLdouble</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniform2f</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLfloat</ptype> <name>v0</name></param>
             <param><ptype>GLfloat</ptype> <name>v1</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniform2fEXT</name></proto>
@@ -21896,21 +22432,21 @@ typedef unsigned int GLhandleARB;
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLfloat</ptype> <name>v0</name></param>
             <param><ptype>GLfloat</ptype> <name>v1</name></param>
             <alias name="glProgramUniform2f"/>
         </command>
         <command>
             <proto>void <name>glProgramUniform2fv</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
-            <param len="2">const <ptype>GLfloat</ptype> *<name>value</name></param>
+            <param len="count*2">const <ptype>GLfloat</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniform2fvEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param len="count*2">const <ptype>GLfloat</ptype> *<name>value</name></param>
             <alias name="glProgramUniform2fv"/>
         </command>
         <command>
@@ -21954,21 +22490,21 @@ typedef unsigned int GLhandleARB;
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLint</ptype> <name>v0</name></param>
             <param><ptype>GLint</ptype> <name>v1</name></param>
             <alias name="glProgramUniform2i"/>
         </command>
         <command>
             <proto>void <name>glProgramUniform2iv</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
-            <param len="2">const <ptype>GLint</ptype> *<name>value</name></param>
+            <param len="count*2">const <ptype>GLint</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniform2ivEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param len="count*2">const <ptype>GLint</ptype> *<name>value</name></param>
             <alias name="glProgramUniform2iv"/>
         </command>
         <command>
@@ -22012,21 +22548,21 @@ typedef unsigned int GLhandleARB;
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLuint</ptype> <name>v0</name></param>
             <param><ptype>GLuint</ptype> <name>v1</name></param>
             <alias name="glProgramUniform2ui"/>
         </command>
         <command>
             <proto>void <name>glProgramUniform2uiv</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
-            <param len="2">const <ptype>GLuint</ptype> *<name>value</name></param>
+            <param len="count*2">const <ptype>GLuint</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniform2uivEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param len="count*2">const <ptype>GLuint</ptype> *<name>value</name></param>
             <alias name="glProgramUniform2uiv"/>
         </command>
         <command>
@@ -22043,28 +22579,28 @@ typedef unsigned int GLhandleARB;
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLdouble</ptype> <name>x</name></param>
             <param><ptype>GLdouble</ptype> <name>y</name></param>
             <param><ptype>GLdouble</ptype> <name>z</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniform3dv</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
-            <param len="3">const <ptype>GLdouble</ptype> *<name>value</name></param>
+            <param len="count*3">const <ptype>GLdouble</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniform3dvEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
-            <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+            <param len="count*3">const <ptype>GLdouble</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniform3f</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLfloat</ptype> <name>v0</name></param>
             <param><ptype>GLfloat</ptype> <name>v1</name></param>
             <param><ptype>GLfloat</ptype> <name>v2</name></param>
         </command>
         <command>
@@ -22074,21 +22610,21 @@ typedef unsigned int GLhandleARB;
             <param><ptype>GLfloat</ptype> <name>v0</name></param>
             <param><ptype>GLfloat</ptype> <name>v1</name></param>
             <param><ptype>GLfloat</ptype> <name>v2</name></param>
             <alias name="glProgramUniform3f"/>
         </command>
         <command>
             <proto>void <name>glProgramUniform3fv</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
-            <param len="3">const <ptype>GLfloat</ptype> *<name>value</name></param>
+            <param len="count*3">const <ptype>GLfloat</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniform3fvEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param len="count*3">const <ptype>GLfloat</ptype> *<name>value</name></param>
             <alias name="glProgramUniform3fv"/>
         </command>
         <command>
@@ -22136,21 +22672,21 @@ typedef unsigned int GLhandleARB;
             <param><ptype>GLint</ptype> <name>v0</name></param>
             <param><ptype>GLint</ptype> <name>v1</name></param>
             <param><ptype>GLint</ptype> <name>v2</name></param>
             <alias name="glProgramUniform3i"/>
         </command>
         <command>
             <proto>void <name>glProgramUniform3iv</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
-            <param len="3">const <ptype>GLint</ptype> *<name>value</name></param>
+            <param len="count*3">const <ptype>GLint</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniform3ivEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param len="count*3">const <ptype>GLint</ptype> *<name>value</name></param>
             <alias name="glProgramUniform3iv"/>
         </command>
         <command>
@@ -22198,21 +22734,21 @@ typedef unsigned int GLhandleARB;
             <param><ptype>GLuint</ptype> <name>v0</name></param>
             <param><ptype>GLuint</ptype> <name>v1</name></param>
             <param><ptype>GLuint</ptype> <name>v2</name></param>
             <alias name="glProgramUniform3ui"/>
         </command>
         <command>
             <proto>void <name>glProgramUniform3uiv</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
-            <param len="3">const <ptype>GLuint</ptype> *<name>value</name></param>
+            <param len="count*3">const <ptype>GLuint</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniform3uivEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param len="count*3">const <ptype>GLuint</ptype> *<name>value</name></param>
             <alias name="glProgramUniform3uiv"/>
         </command>
         <command>
@@ -22231,28 +22767,28 @@ typedef unsigned int GLhandleARB;
             <param><ptype>GLdouble</ptype> <name>x</name></param>
             <param><ptype>GLdouble</ptype> <name>y</name></param>
             <param><ptype>GLdouble</ptype> <name>z</name></param>
             <param><ptype>GLdouble</ptype> <name>w</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniform4dv</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
-            <param len="4">const <ptype>GLdouble</ptype> *<name>value</name></param>
+            <param len="count*4">const <ptype>GLdouble</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniform4dvEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
-            <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+            <param len="count*4">const <ptype>GLdouble</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniform4f</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLfloat</ptype> <name>v0</name></param>
             <param><ptype>GLfloat</ptype> <name>v1</name></param>
             <param><ptype>GLfloat</ptype> <name>v2</name></param>
             <param><ptype>GLfloat</ptype> <name>v3</name></param>
         </command>
@@ -22264,21 +22800,21 @@ typedef unsigned int GLhandleARB;
             <param><ptype>GLfloat</ptype> <name>v1</name></param>
             <param><ptype>GLfloat</ptype> <name>v2</name></param>
             <param><ptype>GLfloat</ptype> <name>v3</name></param>
             <alias name="glProgramUniform4f"/>
         </command>
         <command>
             <proto>void <name>glProgramUniform4fv</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
-            <param len="4">const <ptype>GLfloat</ptype> *<name>value</name></param>
+            <param len="count*4">const <ptype>GLfloat</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniform4fvEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param len="count*4">const <ptype>GLfloat</ptype> *<name>value</name></param>
             <alias name="glProgramUniform4fv"/>
         </command>
         <command>
@@ -22330,21 +22866,21 @@ typedef unsigned int GLhandleARB;
             <param><ptype>GLint</ptype> <name>v1</name></param>
             <param><ptype>GLint</ptype> <name>v2</name></param>
             <param><ptype>GLint</ptype> <name>v3</name></param>
             <alias name="glProgramUniform4i"/>
         </command>
         <command>
             <proto>void <name>glProgramUniform4iv</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
-            <param len="4">const <ptype>GLint</ptype> *<name>value</name></param>
+            <param len="count*4">const <ptype>GLint</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniform4ivEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param len="count*4">const <ptype>GLint</ptype> *<name>value</name></param>
             <alias name="glProgramUniform4iv"/>
         </command>
         <command>
@@ -22396,343 +22932,358 @@ typedef unsigned int GLhandleARB;
             <param><ptype>GLuint</ptype> <name>v1</name></param>
             <param><ptype>GLuint</ptype> <name>v2</name></param>
             <param><ptype>GLuint</ptype> <name>v3</name></param>
             <alias name="glProgramUniform4ui"/>
         </command>
         <command>
             <proto>void <name>glProgramUniform4uiv</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
-            <param len="4">const <ptype>GLuint</ptype> *<name>value</name></param>
+            <param len="count*4">const <ptype>GLuint</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniform4uivEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param len="count*4">const <ptype>GLuint</ptype> *<name>value</name></param>
             <alias name="glProgramUniform4uiv"/>
         </command>
         <command>
             <proto>void <name>glProgramUniformHandleui64ARB</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLuint64</ptype> <name>value</name></param>
         </command>
         <command>
+            <proto>void <name>glProgramUniformHandleui64IMG</name></proto>
+            <param><ptype>GLuint</ptype> <name>program</name></param>
+            <param><ptype>GLint</ptype> <name>location</name></param>
+            <param><ptype>GLuint64</ptype> <name>value</name></param>
+            <alias name="glProgramUniformHandleui64ARB"/>
+        </command>
+        <command>
             <proto>void <name>glProgramUniformHandleui64NV</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLuint64</ptype> <name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniformHandleui64vARB</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param len="count">const <ptype>GLuint64</ptype> *<name>values</name></param>
         </command>
         <command>
+            <proto>void <name>glProgramUniformHandleui64vIMG</name></proto>
+            <param><ptype>GLuint</ptype> <name>program</name></param>
+            <param><ptype>GLint</ptype> <name>location</name></param>
+            <param><ptype>GLsizei</ptype> <name>count</name></param>
+            <param len="count">const <ptype>GLuint64</ptype> *<name>values</name></param>
+            <alias name="glProgramUniformHandleui64vARB"/>
+        </command>
+        <command>
             <proto>void <name>glProgramUniformHandleui64vNV</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param len="count">const <ptype>GLuint64</ptype> *<name>values</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniformMatrix2dv</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
-            <param len="2">const <ptype>GLdouble</ptype> *<name>value</name></param>
+            <param len="count*4">const <ptype>GLdouble</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniformMatrix2dvEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
-            <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+            <param len="count*4">const <ptype>GLdouble</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniformMatrix2fv</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
-            <param len="2">const <ptype>GLfloat</ptype> *<name>value</name></param>
+            <param len="count*4">const <ptype>GLfloat</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniformMatrix2fvEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
             <param len="count*4">const <ptype>GLfloat</ptype> *<name>value</name></param>
             <alias name="glProgramUniformMatrix2fv"/>
         </command>
         <command>
             <proto>void <name>glProgramUniformMatrix2x3dv</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
-            <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+            <param len="count*6">const <ptype>GLdouble</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniformMatrix2x3dvEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
-            <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+            <param len="count*6">const <ptype>GLdouble</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniformMatrix2x3fv</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
-            <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+            <param len="count*6">const <ptype>GLfloat</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniformMatrix2x3fvEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
             <param len="count*6">const <ptype>GLfloat</ptype> *<name>value</name></param>
             <alias name="glProgramUniformMatrix2x3fv"/>
         </command>
         <command>
             <proto>void <name>glProgramUniformMatrix2x4dv</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
-            <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+            <param len="count*8">const <ptype>GLdouble</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniformMatrix2x4dvEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
-            <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+            <param len="count*8">const <ptype>GLdouble</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniformMatrix2x4fv</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
-            <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+            <param len="count*8">const <ptype>GLfloat</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniformMatrix2x4fvEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
             <param len="count*8">const <ptype>GLfloat</ptype> *<name>value</name></param>
             <alias name="glProgramUniformMatrix2x4fv"/>
         </command>
         <command>
             <proto>void <name>glProgramUniformMatrix3dv</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
-            <param len="3">const <ptype>GLdouble</ptype> *<name>value</name></param>
+            <param len="count*9">const <ptype>GLdouble</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniformMatrix3dvEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
-            <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+            <param len="count*9">const <ptype>GLdouble</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniformMatrix3fv</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
-            <param len="3">const <ptype>GLfloat</ptype> *<name>value</name></param>
+            <param len="count*9">const <ptype>GLfloat</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniformMatrix3fvEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
             <param len="count*9">const <ptype>GLfloat</ptype> *<name>value</name></param>
             <alias name="glProgramUniformMatrix3fv"/>
         </command>
         <command>
             <proto>void <name>glProgramUniformMatrix3x2dv</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
-            <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+            <param len="count*6">const <ptype>GLdouble</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniformMatrix3x2dvEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
-            <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+            <param len="count*6">const <ptype>GLdouble</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniformMatrix3x2fv</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
-            <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+            <param len="count*6">const <ptype>GLfloat</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniformMatrix3x2fvEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
             <param len="count*6">const <ptype>GLfloat</ptype> *<name>value</name></param>
             <alias name="glProgramUniformMatrix3x2fv"/>
         </command>
         <command>
             <proto>void <name>glProgramUniformMatrix3x4dv</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
-            <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+            <param len="count*12">const <ptype>GLdouble</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniformMatrix3x4dvEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
-            <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+            <param len="count*12">const <ptype>GLdouble</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniformMatrix3x4fv</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
-            <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+            <param len="count*12">const <ptype>GLfloat</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniformMatrix3x4fvEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
             <param len="count*12">const <ptype>GLfloat</ptype> *<name>value</name></param>
             <alias name="glProgramUniformMatrix3x4fv"/>
         </command>
         <command>
             <proto>void <name>glProgramUniformMatrix4dv</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
-            <param len="4">const <ptype>GLdouble</ptype> *<name>value</name></param>
+            <param len="count*16">const <ptype>GLdouble</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniformMatrix4dvEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
-            <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+            <param len="count*16">const <ptype>GLdouble</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniformMatrix4fv</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
-            <param len="4">const <ptype>GLfloat</ptype> *<name>value</name></param>
+            <param len="count*16">const <ptype>GLfloat</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniformMatrix4fvEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
             <param len="count*16">const <ptype>GLfloat</ptype> *<name>value</name></param>
             <alias name="glProgramUniformMatrix4fv"/>
         </command>
         <command>
             <proto>void <name>glProgramUniformMatrix4x2dv</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
-            <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+            <param len="count*8">const <ptype>GLdouble</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniformMatrix4x2dvEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
-            <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+            <param len="count*8">const <ptype>GLdouble</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniformMatrix4x2fv</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
-            <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+            <param len="count*8">const <ptype>GLfloat</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniformMatrix4x2fvEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
             <param len="count*8">const <ptype>GLfloat</ptype> *<name>value</name></param>
             <alias name="glProgramUniformMatrix4x2fv"/>
         </command>
         <command>
             <proto>void <name>glProgramUniformMatrix4x3dv</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
-            <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+            <param len="count*12">const <ptype>GLdouble</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniformMatrix4x3dvEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
-            <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+            <param len="count*12">const <ptype>GLdouble</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniformMatrix4x3fv</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
-            <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+            <param len="count*12">const <ptype>GLfloat</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glProgramUniformMatrix4x3fvEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
             <param len="count*12">const <ptype>GLfloat</ptype> *<name>value</name></param>
             <alias name="glProgramUniformMatrix4x3fv"/>
         </command>
@@ -23079,20 +23630,25 @@ typedef unsigned int GLhandleARB;
             <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
             <param><ptype>GLsizei</ptype> <name>width</name></param>
             <param><ptype>GLsizei</ptype> <name>height</name></param>
             <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
             <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
             <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
             <param len="bufSize">void *<name>data</name></param>
             <alias name="glReadnPixels"/>
         </command>
         <command>
+            <proto><ptype>GLboolean</ptype> <name>glReleaseKeyedMutexWin32EXT</name></proto>
+            <param><ptype>GLuint</ptype> <name>memory</name></param>
+            <param><ptype>GLuint64</ptype> <name>key</name></param>
+        </command>
+        <command>
             <proto>void <name>glRectd</name></proto>
             <param group="CoordD"><ptype>GLdouble</ptype> <name>x1</name></param>
             <param group="CoordD"><ptype>GLdouble</ptype> <name>y1</name></param>
             <param group="CoordD"><ptype>GLdouble</ptype> <name>x2</name></param>
             <param group="CoordD"><ptype>GLdouble</ptype> <name>y2</name></param>
             <vecequiv name="glRectdv"/>
         </command>
         <command>
             <proto>void <name>glRectdv</name></proto>
             <param group="CoordD" len="2">const <ptype>GLdouble</ptype> *<name>v1</name></param>
@@ -23155,20 +23711,24 @@ typedef unsigned int GLhandleARB;
         </command>
         <command>
             <proto>void <name>glReferencePlaneSGIX</name></proto>
             <param len="4">const <ptype>GLdouble</ptype> *<name>equation</name></param>
             <glx type="render" opcode="2071"/>
         </command>
         <command>
             <proto>void <name>glReleaseShaderCompiler</name></proto>
         </command>
         <command>
+            <proto>void <name>glRenderGpuMaskNV</name></proto>
+            <param><ptype>GLbitfield</ptype> <name>mask</name></param>
+        </command>
+        <command>
             <proto><ptype>GLint</ptype> <name>glRenderMode</name></proto>
             <param group="RenderingMode"><ptype>GLenum</ptype> <name>mode</name></param>
             <glx type="single" opcode="107"/>
         </command>
         <command>
             <proto>void <name>glRenderbufferStorage</name></proto>
             <param group="RenderbufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
             <param><ptype>GLenum</ptype> <name>internalformat</name></param>
             <param><ptype>GLsizei</ptype> <name>width</name></param>
             <param><ptype>GLsizei</ptype> <name>height</name></param>
@@ -23983,20 +24543,26 @@ typedef unsigned int GLhandleARB;
         </command>
         <command>
             <proto>void <name>glSelectPerfMonitorCountersAMD</name></proto>
             <param><ptype>GLuint</ptype> <name>monitor</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>enable</name></param>
             <param><ptype>GLuint</ptype> <name>group</name></param>
             <param><ptype>GLint</ptype> <name>numCounters</name></param>
             <param len="numCounters"><ptype>GLuint</ptype> *<name>counterList</name></param>
         </command>
         <command>
+            <proto>void <name>glSemaphoreParameterui64vEXT</name></proto>
+            <param><ptype>GLuint</ptype> <name>semaphore</name></param>
+            <param group="SemaphoreParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+            <param>const <ptype>GLuint64</ptype> *<name>params</name></param>
+        </command>
+        <command>
             <proto>void <name>glSeparableFilter2D</name></proto>
             <param group="SeparableTarget"><ptype>GLenum</ptype> <name>target</name></param>
             <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
             <param><ptype>GLsizei</ptype> <name>width</name></param>
             <param><ptype>GLsizei</ptype> <name>height</name></param>
             <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
             <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
             <param len="COMPSIZE(target,format,type,width)">const void *<name>row</name></param>
             <param len="COMPSIZE(target,format,type,height)">const void *<name>column</name></param>
             <glx type="render" opcode="4109"/>
@@ -24103,20 +24669,37 @@ typedef unsigned int GLhandleARB;
             <param><ptype>GLuint</ptype> <name>storageBlockBinding</name></param>
         </command>
         <command>
             <proto>void <name>glSharpenTexFuncSGIS</name></proto>
             <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
             <param><ptype>GLsizei</ptype> <name>n</name></param>
             <param len="n*2">const <ptype>GLfloat</ptype> *<name>points</name></param>
             <glx type="render" opcode="2052"/>
         </command>
         <command>
+            <proto>void <name>glSignalSemaphoreEXT</name></proto>
+            <param><ptype>GLuint</ptype> <name>semaphore</name></param>
+            <param><ptype>GLuint</ptype> <name>numBufferBarriers</name></param>
+            <param len="COMPSIZE(numBufferBarriers)">const <ptype>GLuint</ptype> *<name>buffers</name></param>
+            <param><ptype>GLuint</ptype> <name>numTextureBarriers</name></param>
+            <param len="COMPSIZE(numTextureBarriers)">const <ptype>GLuint</ptype> *<name>textures</name></param>
+            <param group="TextureLayout" len="COMPSIZE(numTextureBarriers)">const <ptype>GLenum</ptype> *<name>dstLayouts</name></param>
+        </command>
+        <command>
+            <proto>void <name>glSpecializeShaderARB</name></proto>
+            <param><ptype>GLuint</ptype> <name>shader</name></param>
+            <param>const <ptype>GLchar</ptype> *<name>pEntryPoint</name></param>
+            <param><ptype>GLuint</ptype> <name>numSpecializationConstants</name></param>
+            <param>const <ptype>GLuint</ptype> *<name>pConstantIndex</name></param>
+            <param>const <ptype>GLuint</ptype> *<name>pConstantValue</name></param>
+        </command>
+        <command>
             <proto>void <name>glSpriteParameterfSGIX</name></proto>
             <param group="SpriteParameterNameSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
             <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
             <glx type="render" opcode="2060"/>
         </command>
         <command>
             <proto>void <name>glSpriteParameterfvSGIX</name></proto>
             <param group="SpriteParameterNameSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
             <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
             <glx type="render" opcode="2061"/>
@@ -25440,20 +26023,73 @@ typedef unsigned int GLhandleARB;
             <param><ptype>GLenum</ptype> <name>target</name></param>
             <param><ptype>GLsizei</ptype> <name>samples</name></param>
             <param><ptype>GLenum</ptype> <name>internalformat</name></param>
             <param><ptype>GLsizei</ptype> <name>width</name></param>
             <param><ptype>GLsizei</ptype> <name>height</name></param>
             <param><ptype>GLsizei</ptype> <name>depth</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>fixedsamplelocations</name></param>
             <alias name="glTexStorage3DMultisample"/>
         </command>
         <command>
+            <proto>void <name>glTexStorageMem1DEXT</name></proto>
+            <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+            <param><ptype>GLsizei</ptype> <name>levels</name></param>
+            <param><ptype>GLenum</ptype> <name>internalFormat</name></param>
+            <param><ptype>GLsizei</ptype> <name>width</name></param>
+            <param><ptype>GLuint</ptype> <name>memory</name></param>
+            <param><ptype>GLuint64</ptype> <name>offset</name></param>
+        </command>
+        <command>
+            <proto>void <name>glTexStorageMem2DEXT</name></proto>
+            <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+            <param><ptype>GLsizei</ptype> <name>levels</name></param>
+            <param><ptype>GLenum</ptype> <name>internalFormat</name></param>
+            <param><ptype>GLsizei</ptype> <name>width</name></param>
+            <param><ptype>GLsizei</ptype> <name>height</name></param>
+            <param><ptype>GLuint</ptype> <name>memory</name></param>
+            <param><ptype>GLuint64</ptype> <name>offset</name></param>
+        </command>
+        <command>
+            <proto>void <name>glTexStorageMem2DMultisampleEXT</name></proto>
+            <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+            <param><ptype>GLsizei</ptype> <name>samples</name></param>
+            <param><ptype>GLenum</ptype> <name>internalFormat</name></param>
+            <param><ptype>GLsizei</ptype> <name>width</name></param>
+            <param><ptype>GLsizei</ptype> <name>height</name></param>
+            <param><ptype>GLboolean</ptype> <name>fixedSampleLocations</name></param>
+            <param><ptype>GLuint</ptype> <name>memory</name></param>
+            <param><ptype>GLuint64</ptype> <name>offset</name></param>
+        </command>
+        <command>
+            <proto>void <name>glTexStorageMem3DEXT</name></proto>
+            <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+            <param><ptype>GLsizei</ptype> <name>levels</name></param>
+            <param><ptype>GLenum</ptype> <name>internalFormat</name></param>
+            <param><ptype>GLsizei</ptype> <name>width</name></param>
+            <param><ptype>GLsizei</ptype> <name>height</name></param>
+            <param><ptype>GLsizei</ptype> <name>depth</name></param>
+            <param><ptype>GLuint</ptype> <name>memory</name></param>
+            <param><ptype>GLuint64</ptype> <name>offset</name></param>
+        </command>
+        <command>
+            <proto>void <name>glTexStorageMem3DMultisampleEXT</name></proto>
+            <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+            <param><ptype>GLsizei</ptype> <name>samples</name></param>
+            <param><ptype>GLenum</ptype> <name>internalFormat</name></param>
+            <param><ptype>GLsizei</ptype> <name>width</name></param>
+            <param><ptype>GLsizei</ptype> <name>height</name></param>
+            <param><ptype>GLsizei</ptype> <name>depth</name></param>
+            <param><ptype>GLboolean</ptype> <name>fixedSampleLocations</name></param>
+            <param><ptype>GLuint</ptype> <name>memory</name></param>
+            <param><ptype>GLuint64</ptype> <name>offset</name></param>
+        </command>
+        <command>
             <proto>void <name>glTexStorageSparseAMD</name></proto>
             <param><ptype>GLenum</ptype> <name>target</name></param>
             <param><ptype>GLenum</ptype> <name>internalFormat</name></param>
             <param><ptype>GLsizei</ptype> <name>width</name></param>
             <param><ptype>GLsizei</ptype> <name>height</name></param>
             <param><ptype>GLsizei</ptype> <name>depth</name></param>
             <param><ptype>GLsizei</ptype> <name>layers</name></param>
             <param><ptype>GLbitfield</ptype> <name>flags</name></param>
         </command>
         <command>
@@ -25902,20 +26538,73 @@ typedef unsigned int GLhandleARB;
             <param><ptype>GLuint</ptype> <name>texture</name></param>
             <param><ptype>GLenum</ptype> <name>target</name></param>
             <param><ptype>GLsizei</ptype> <name>samples</name></param>
             <param><ptype>GLenum</ptype> <name>internalformat</name></param>
             <param><ptype>GLsizei</ptype> <name>width</name></param>
             <param><ptype>GLsizei</ptype> <name>height</name></param>
             <param><ptype>GLsizei</ptype> <name>depth</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>fixedsamplelocations</name></param>
         </command>
         <command>
+            <proto>void <name>glTextureStorageMem1DEXT</name></proto>
+            <param><ptype>GLuint</ptype> <name>texture</name></param>
+            <param><ptype>GLsizei</ptype> <name>levels</name></param>
+            <param><ptype>GLenum</ptype> <name>internalFormat</name></param>
+            <param><ptype>GLsizei</ptype> <name>width</name></param>
+            <param><ptype>GLuint</ptype> <name>memory</name></param>
+            <param><ptype>GLuint64</ptype> <name>offset</name></param>
+        </command>
+        <command>
+            <proto>void <name>glTextureStorageMem2DEXT</name></proto>
+            <param><ptype>GLuint</ptype> <name>texture</name></param>
+            <param><ptype>GLsizei</ptype> <name>levels</name></param>
+            <param><ptype>GLenum</ptype> <name>internalFormat</name></param>
+            <param><ptype>GLsizei</ptype> <name>width</name></param>
+            <param><ptype>GLsizei</ptype> <name>height</name></param>
+            <param><ptype>GLuint</ptype> <name>memory</name></param>
+            <param><ptype>GLuint64</ptype> <name>offset</name></param>
+        </command>
+        <command>
+            <proto>void <name>glTextureStorageMem2DMultisampleEXT</name></proto>
+            <param><ptype>GLuint</ptype> <name>texture</name></param>
+            <param><ptype>GLsizei</ptype> <name>samples</name></param>
+            <param><ptype>GLenum</ptype> <name>internalFormat</name></param>
+            <param><ptype>GLsizei</ptype> <name>width</name></param>
+            <param><ptype>GLsizei</ptype> <name>height</name></param>
+            <param><ptype>GLboolean</ptype> <name>fixedSampleLocations</name></param>
+            <param><ptype>GLuint</ptype> <name>memory</name></param>
+            <param><ptype>GLuint64</ptype> <name>offset</name></param>
+        </command>
+        <command>
+            <proto>void <name>glTextureStorageMem3DEXT</name></proto>
+            <param><ptype>GLuint</ptype> <name>texture</name></param>
+            <param><ptype>GLsizei</ptype> <name>levels</name></param>
+            <param><ptype>GLenum</ptype> <name>internalFormat</name></param>
+            <param><ptype>GLsizei</ptype> <name>width</name></param>
+            <param><ptype>GLsizei</ptype> <name>height</name></param>
+            <param><ptype>GLsizei</ptype> <name>depth</name></param>
+            <param><ptype>GLuint</ptype> <name>memory</name></param>
+            <param><ptype>GLuint64</ptype> <name>offset</name></param>
+        </command>
+        <command>
+            <proto>void <name>glTextureStorageMem3DMultisampleEXT</name></proto>
+            <param><ptype>GLuint</ptype> <name>texture</name></param>
+            <param><ptype>GLsizei</ptype> <name>samples</name></param>
+            <param><ptype>GLenum</ptype> <name>internalFormat</name></param>
+            <param><ptype>GLsizei</ptype> <name>width</name></param>
+            <param><ptype>GLsizei</ptype> <name>height</name></param>
+            <param><ptype>GLsizei</ptype> <name>depth</name></param>
+            <param><ptype>GLboolean</ptype> <name>fixedSampleLocations</name></param>
+            <param><ptype>GLuint</ptype> <name>memory</name></param>
+            <param><ptype>GLuint64</ptype> <name>offset</name></param>
+        </command>
+        <command>
             <proto>void <name>glTextureStorageSparseAMD</name></proto>
             <param><ptype>GLuint</ptype> <name>texture</name></param>
             <param><ptype>GLenum</ptype> <name>target</name></param>
             <param><ptype>GLenum</ptype> <name>internalFormat</name></param>
             <param><ptype>GLsizei</ptype> <name>width</name></param>
             <param><ptype>GLsizei</ptype> <name>height</name></param>
             <param><ptype>GLsizei</ptype> <name>depth</name></param>
             <param><ptype>GLsizei</ptype> <name>layers</name></param>
             <param><ptype>GLbitfield</ptype> <name>flags</name></param>
         </command>
@@ -26705,31 +27394,44 @@ typedef unsigned int GLhandleARB;
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLuint</ptype> <name>buffer</name></param>
         </command>
         <command>
             <proto>void <name>glUniformHandleui64ARB</name></proto>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLuint64</ptype> <name>value</name></param>
         </command>
         <command>
+            <proto>void <name>glUniformHandleui64IMG</name></proto>
+            <param><ptype>GLint</ptype> <name>location</name></param>
+            <param><ptype>GLuint64</ptype> <name>value</name></param>
+            <alias name="glUniformHandleui64ARB"/>
+        </command>
+        <command>
             <proto>void <name>glUniformHandleui64NV</name></proto>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLuint64</ptype> <name>value</name></param>
         </command>
         <command>
             <proto>void <name>glUniformHandleui64vARB</name></proto>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param len="count">const <ptype>GLuint64</ptype> *<name>value</name></param>
         </command>
         <command>
+            <proto>void <name>glUniformHandleui64vIMG</name></proto>
+            <param><ptype>GLint</ptype> <name>location</name></param>
+            <param><ptype>GLsizei</ptype> <name>count</name></param>
+            <param len="count">const <ptype>GLuint64</ptype> *<name>value</name></param>
+            <alias name="glUniformHandleui64vARB"/>
+        </command>
+        <command>
             <proto>void <name>glUniformHandleui64vNV</name></proto>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param len="count">const <ptype>GLuint64</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto>void <name>glUniformMatrix2dv</name></proto>
             <param><ptype>GLint</ptype> <name>location</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
@@ -29551,20 +30253,29 @@ typedef unsigned int GLhandleARB;
         </command>
         <command>
             <proto>void <name>glViewportSwizzleNV</name></proto>
             <param><ptype>GLuint</ptype> <name>index</name></param>
             <param><ptype>GLenum</ptype> <name>swizzlex</name></param>
             <param><ptype>GLenum</ptype> <name>swizzley</name></param>
             <param><ptype>GLenum</ptype> <name>swizzlez</name></param>
             <param><ptype>GLenum</ptype> <name>swizzlew</name></param>
         </command>
         <command>
+            <proto>void <name>glWaitSemaphoreEXT</name></proto>
+            <param><ptype>GLuint</ptype> <name>semaphore</name></param>
+            <param><ptype>GLuint</ptype> <name>numBufferBarriers</name></param>
+            <param len="COMPSIZE(numBufferBarriers)">const <ptype>GLuint</ptype> *<name>buffers</name></param>
+            <param><ptype>GLuint</ptype> <name>numTextureBarriers</name></param>
+            <param len="COMPSIZE(numTextureBarriers)">const <ptype>GLuint</ptype> *<name>textures</name></param>
+            <param group="TextureLayout" len="COMPSIZE(numTextureBarriers)">const <ptype>GLenum</ptype> *<name>srcLayouts</name></param>
+        </command>
+        <command>
             <proto>void <name>glWaitSync</name></proto>
             <param group="sync"><ptype>GLsync</ptype> <name>sync</name></param>
             <param><ptype>GLbitfield</ptype> <name>flags</name></param>
             <param><ptype>GLuint64</ptype> <name>timeout</name></param>
         </command>
         <command>
             <proto>void <name>glWaitSyncAPPLE</name></proto>
             <param><ptype>GLsync</ptype> <name>sync</name></param>
             <param><ptype>GLbitfield</ptype> <name>flags</name></param>
             <param><ptype>GLuint64</ptype> <name>timeout</name></param>
@@ -29995,340 +30706,57 @@ typedef unsigned int GLhandleARB;
         </command>
         <command>
             <proto>void <name>glWriteMaskEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>res</name></param>
             <param><ptype>GLuint</ptype> <name>in</name></param>
             <param group="VertexShaderWriteMaskEXT"><ptype>GLenum</ptype> <name>outX</name></param>
             <param group="VertexShaderWriteMaskEXT"><ptype>GLenum</ptype> <name>outY</name></param>
             <param group="VertexShaderWriteMaskEXT"><ptype>GLenum</ptype> <name>outZ</name></param>
             <param group="VertexShaderWriteMaskEXT"><ptype>GLenum</ptype> <name>outW</name></param>
         </command>
+        <command>
+            <proto>void <name>glDrawVkImageNV</name></proto>
+            <param><ptype>GLuint64</ptype> <name>vkImage</name></param>
+            <param><ptype>GLuint</ptype> <name>sampler</name></param>
+            <param><ptype>GLfloat</ptype> <name>x0</name></param>
+            <param><ptype>GLfloat</ptype> <name>y0</name></param>
+            <param><ptype>GLfloat</ptype> <name>x1</name></param>
+            <param><ptype>GLfloat</ptype> <name>y1</name></param>
+            <param><ptype>GLfloat</ptype> <name>z</name></param>
+            <param><ptype>GLfloat</ptype> <name>s0</name></param>
+            <param><ptype>GLfloat</ptype> <name>t0</name></param>
+            <param><ptype>GLfloat</ptype> <name>s1</name></param>
+            <param><ptype>GLfloat</ptype> <name>t1</name></param>
+        </command>
+        <command>
+            <proto><ptype>GLVULKANPROCNV</ptype> <name>glGetVkProcAddrNV</name></proto>
+            <param len="COMPSIZE(name)">const <ptype>GLchar</ptype> *<name>name</name></param>
+        </command>
+        <command>
+            <proto>void <name>glWaitVkSemaphoreNV</name></proto>
+            <param><ptype>GLuint64</ptype> <name>vkSemaphore</name></param>
+        </command>
+        <command>
+            <proto>void <name>glSignalVkSemaphoreNV</name></proto>
+            <param><ptype>GLuint64</ptype> <name>vkSemaphore</name></param>
+        </command>
+        <command>
+            <proto>void <name>glSignalVkFenceNV</name></proto>
+            <param><ptype>GLuint64</ptype> <name>vkFence</name></param>
+        </command>
 
     </commands>
 
     <!-- SECTION: GL API interface definitions. -->
     <feature api="gl" name="GL_VERSION_1_0" number="1.0">
         <require>
             <type name="GLvoid" comment="No longer used in headers"/>
-            <command name="glCullFace"/>
-            <command name="glFrontFace"/>
-            <command name="glHint"/>
-            <command name="glLineWidth"/>
-            <command name="glPointSize"/>
-            <command name="glPolygonMode"/>
-            <command name="glScissor"/>
-            <command name="glTexParameterf"/>
-            <command name="glTexParameterfv"/>
-            <command name="glTexParameteri"/>
-            <command name="glTexParameteriv"/>
-            <command name="glTexImage1D"/>
-            <command name="glTexImage2D"/>
-            <command name="glDrawBuffer"/>
-            <command name="glClear"/>
-            <command name="glClearColor"/>
-            <command name="glClearStencil"/>
-            <command name="glClearDepth"/>
-            <command name="glStencilMask"/>
-            <command name="glColorMask"/>
-            <command name="glDepthMask"/>
-            <command name="glDisable"/>
-            <command name="glEnable"/>
-            <command name="glFinish"/>
-            <command name="glFlush"/>
-            <command name="glBlendFunc"/>
-            <command name="glLogicOp"/>
-            <command name="glStencilFunc"/>
-            <command name="glStencilOp"/>
-            <command name="glDepthFunc"/>
-            <command name="glPixelStoref"/>
-            <command name="glPixelStorei"/>
-            <command name="glReadBuffer"/>
-            <command name="glReadPixels"/>
-            <command name="glGetBooleanv"/>
-            <command name="glGetDoublev"/>
-            <command name="glGetError"/>
-            <command name="glGetFloatv"/>
-            <command name="glGetIntegerv"/>
-            <command name="glGetString"/>
-            <command name="glGetTexImage"/>
-            <command name="glGetTexParameterfv"/>
-            <command name="glGetTexParameteriv"/>
-            <command name="glGetTexLevelParameterfv"/>
-            <command name="glGetTexLevelParameteriv"/>
-            <command name="glIsEnabled"/>
-            <command name="glDepthRange"/>
-            <command name="glViewport"/>
-            <command name="glNewList"/>
-            <command name="glEndList"/>
-            <command name="glCallList"/>
-            <command name="glCallLists"/>
-            <command name="glDeleteLists"/>
-            <command name="glGenLists"/>
-            <command name="glListBase"/>
-            <command name="glBegin"/>
-            <command name="glBitmap"/>
-            <command name="glColor3b"/>
-            <command name="glColor3bv"/>
-            <command name="glColor3d"/>
-            <command name="glColor3dv"/>
-            <command name="glColor3f"/>
-            <command name="glColor3fv"/>
-            <command name="glColor3i"/>
-            <command name="glColor3iv"/>
-            <command name="glColor3s"/>
-            <command name="glColor3sv"/>
-            <command name="glColor3ub"/>
-            <command name="glColor3ubv"/>
-            <command name="glColor3ui"/>
-            <command name="glColor3uiv"/>
-            <command name="glColor3us"/>
-            <command name="glColor3usv"/>
-            <command name="glColor4b"/>
-            <command name="glColor4bv"/>
-            <command name="glColor4d"/>
-            <command name="glColor4dv"/>
-            <command name="glColor4f"/>
-            <command name="glColor4fv"/>
-            <command name="glColor4i"/>
-            <command name="glColor4iv"/>
-            <command name="glColor4s"/>
-            <command name="glColor4sv"/>
-            <command name="glColor4ub"/>
-            <command name="glColor4ubv"/>
-            <command name="glColor4ui"/>
-            <command name="glColor4uiv"/>
-            <command name="glColor4us"/>
-            <command name="glColor4usv"/>
-            <command name="glEdgeFlag"/>
-            <command name="glEdgeFlagv"/>
-            <command name="glEnd"/>
-            <command name="glIndexd"/>
-            <command name="glIndexdv"/>
-            <command name="glIndexf"/>
-            <command name="glIndexfv"/>
-            <command name="glIndexi"/>
-            <command name="glIndexiv"/>
-            <command name="glIndexs"/>
-            <command name="glIndexsv"/>
-            <command name="glNormal3b"/>
-            <command name="glNormal3bv"/>
-            <command name="glNormal3d"/>
-            <command name="glNormal3dv"/>
-            <command name="glNormal3f"/>
-            <command name="glNormal3fv"/>
-            <command name="glNormal3i"/>
-            <command name="glNormal3iv"/>
-            <command name="glNormal3s"/>
-            <command name="glNormal3sv"/>
-            <command name="glRasterPos2d"/>
-            <command name="glRasterPos2dv"/>
-            <command name="glRasterPos2f"/>
-            <command name="glRasterPos2fv"/>
-            <command name="glRasterPos2i"/>
-            <command name="glRasterPos2iv"/>
-            <command name="glRasterPos2s"/>
-            <command name="glRasterPos2sv"/>
-            <command name="glRasterPos3d"/>
-            <command name="glRasterPos3dv"/>
-            <command name="glRasterPos3f"/>
-            <command name="glRasterPos3fv"/>
-            <command name="glRasterPos3i"/>
-            <command name="glRasterPos3iv"/>
-            <command name="glRasterPos3s"/>
-            <command name="glRasterPos3sv"/>
-            <command name="glRasterPos4d"/>
-            <command name="glRasterPos4dv"/>
-            <command name="glRasterPos4f"/>
-            <command name="glRasterPos4fv"/>
-            <command name="glRasterPos4i"/>
-            <command name="glRasterPos4iv"/>
-            <command name="glRasterPos4s"/>
-            <command name="glRasterPos4sv"/>
-            <command name="glRectd"/>
-            <command name="glRectdv"/>
-            <command name="glRectf"/>
-            <command name="glRectfv"/>
-            <command name="glRecti"/>
-            <command name="glRectiv"/>
-            <command name="glRects"/>
-            <command name="glRectsv"/>
-            <command name="glTexCoord1d"/>
-            <command name="glTexCoord1dv"/>
-            <command name="glTexCoord1f"/>
-            <command name="glTexCoord1fv"/>
-            <command name="glTexCoord1i"/>
-            <command name="glTexCoord1iv"/>
-            <command name="glTexCoord1s"/>
-            <command name="glTexCoord1sv"/>
-            <command name="glTexCoord2d"/>
-            <command name="glTexCoord2dv"/>
-            <command name="glTexCoord2f"/>
-            <command name="glTexCoord2fv"/>
-            <command name="glTexCoord2i"/>
-            <command name="glTexCoord2iv"/>
-            <command name="glTexCoord2s"/>
-            <command name="glTexCoord2sv"/>
-            <command name="glTexCoord3d"/>
-            <command name="glTexCoord3dv"/>
-            <command name="glTexCoord3f"/>
-            <command name="glTexCoord3fv"/>
-            <command name="glTexCoord3i"/>
-            <command name="glTexCoord3iv"/>
-            <command name="glTexCoord3s"/>
-            <command name="glTexCoord3sv"/>
-            <command name="glTexCoord4d"/>
-            <command name="glTexCoord4dv"/>
-            <command name="glTexCoord4f"/>
-            <command name="glTexCoord4fv"/>
-            <command name="glTexCoord4i"/>
-            <command name="glTexCoord4iv"/>
-            <command name="glTexCoord4s"/>
-            <command name="glTexCoord4sv"/>
-            <command name="glVertex2d"/>
-            <command name="glVertex2dv"/>
-            <command name="glVertex2f"/>
-            <command name="glVertex2fv"/>
-            <command name="glVertex2i"/>
-            <command name="glVertex2iv"/>
-            <command name="glVertex2s"/>
-            <command name="glVertex2sv"/>
-            <command name="glVertex3d"/>
-            <command name="glVertex3dv"/>
-            <command name="glVertex3f"/>
-            <command name="glVertex3fv"/>
-            <command name="glVertex3i"/>
-            <command name="glVertex3iv"/>
-            <command name="glVertex3s"/>
-            <command name="glVertex3sv"/>
-            <command name="glVertex4d"/>
-            <command name="glVertex4dv"/>
-            <command name="glVertex4f"/>
-            <command name="glVertex4fv"/>
-            <command name="glVertex4i"/>
-            <command name="glVertex4iv"/>
-            <command name="glVertex4s"/>
-            <command name="glVertex4sv"/>
-            <command name="glClipPlane"/>
-            <command name="glColorMaterial"/>
-            <command name="glFogf"/>
-            <command name="glFogfv"/>
-            <command name="glFogi"/>
-            <command name="glFogiv"/>
-            <command name="glLightf"/>
-            <command name="glLightfv"/>
-            <command name="glLighti"/>
-            <command name="glLightiv"/>
-            <command name="glLightModelf"/>
-            <command name="glLightModelfv"/>
-            <command name="glLightModeli"/>
-            <command name="glLightModeliv"/>
-            <command name="glLineStipple"/>
-            <command name="glMaterialf"/>
-            <command name="glMaterialfv"/>
-            <command name="glMateriali"/>
-            <command name="glMaterialiv"/>
-            <command name="glPolygonStipple"/>
-            <command name="glShadeModel"/>
-            <command name="glTexEnvf"/>
-            <command name="glTexEnvfv"/>
-            <command name="glTexEnvi"/>
-            <command name="glTexEnviv"/>
-            <command name="glTexGend"/>
-            <command name="glTexGendv"/>
-            <command name="glTexGenf"/>
-            <command name="glTexGenfv"/>
-            <command name="glTexGeni"/>
-            <command name="glTexGeniv"/>
-            <command name="glFeedbackBuffer"/>
-            <command name="glSelectBuffer"/>
-            <command name="glRenderMode"/>
-            <command name="glInitNames"/>
-            <command name="glLoadName"/>
-            <command name="glPassThrough"/>
-            <command name="glPopName"/>
-            <command name="glPushName"/>
-            <command name="glClearAccum"/>
-            <command name="glClearIndex"/>
-            <command name="glIndexMask"/>
-            <command name="glAccum"/>
-            <command name="glPopAttrib"/>
-            <command name="glPushAttrib"/>
-            <command name="glMap1d"/>
-            <command name="glMap1f"/>
-            <command name="glMap2d"/>
-            <command name="glMap2f"/>
-            <command name="glMapGrid1d"/>
-            <command name="glMapGrid1f"/>
-            <command name="glMapGrid2d"/>
-            <command name="glMapGrid2f"/>
-            <command name="glEvalCoord1d"/>
-            <command name="glEvalCoord1dv"/>
-            <command name="glEvalCoord1f"/>
-            <command name="glEvalCoord1fv"/>
-            <command name="glEvalCoord2d"/>
-            <command name="glEvalCoord2dv"/>
-            <command name="glEvalCoord2f"/>
-            <command name="glEvalCoord2fv"/>
-            <command name="glEvalMesh1"/>
-            <command name="glEvalPoint1"/>
-            <command name="glEvalMesh2"/>
-            <command name="glEvalPoint2"/>
-            <command name="glAlphaFunc"/>
-            <command name="glPixelZoom"/>
-            <command name="glPixelTransferf"/>
-            <command name="glPixelTransferi"/>
-            <command name="glPixelMapfv"/>
-            <command name="glPixelMapuiv"/>
-            <command name="glPixelMapusv"/>
-            <command name="glCopyPixels"/>
-            <command name="glDrawPixels"/>
-            <command name="glGetClipPlane"/>
-            <command name="glGetLightfv"/>
-            <command name="glGetLightiv"/>
-            <command name="glGetMapdv"/>
-            <command name="glGetMapfv"/>
-            <command name="glGetMapiv"/>
-            <command name="glGetMaterialfv"/>
-            <command name="glGetMaterialiv"/>
-            <command name="glGetPixelMapfv"/>
-            <command name="glGetPixelMapuiv"/>
-            <command name="glGetPixelMapusv"/>
-            <command name="glGetPolygonStipple"/>
-            <command name="glGetTexEnvfv"/>
-            <command name="glGetTexEnviv"/>
-            <command name="glGetTexGendv"/>
-            <command name="glGetTexGenfv"/>
-            <command name="glGetTexGeniv"/>
-            <command name="glIsList"/>
-            <command name="glFrustum"/>
-            <command name="glLoadIdentity"/>
-            <command name="glLoadMatrixf"/>
-            <command name="glLoadMatrixd"/>
-            <command name="glMatrixMode"/>
-            <command name="glMultMatrixf"/>
-            <command name="glMultMatrixd"/>
-            <command name="glOrtho"/>
-            <command name="glPopMatrix"/>
-            <command name="glPushMatrix"/>
-            <command name="glRotated"/>
-            <command name="glRotatef"/>
-            <command name="glScaled"/>
-            <command name="glScalef"/>
-            <command name="glTranslated"/>
-            <command name="glTranslatef"/>
-        </require>
-    </feature>
-    <feature api="gl" name="GL_VERSION_1_1" number="1.1">
-        <require>
-            <type name="GLclampf" comment="No longer used in GL 1.1, but still defined in Mesa gl.h"/>
-            <type name="GLclampd" comment="No longer used in GL 1.1, but still defined in Mesa gl.h"/>
-            <!-- Many of these are really VERSION_1_0 enums -->
             <enum name="GL_DEPTH_BUFFER_BIT"/>
             <enum name="GL_STENCIL_BUFFER_BIT"/>
             <enum name="GL_COLOR_BUFFER_BIT"/>
             <enum name="GL_FALSE"/>
             <enum name="GL_TRUE"/>
             <enum name="GL_POINTS"/>
             <enum name="GL_LINES"/>
             <enum name="GL_LINE_LOOP"/>
             <enum name="GL_LINE_STRIP"/>
             <enum name="GL_TRIANGLES"/>
@@ -30396,21 +30824,20 @@ typedef unsigned int GLhandleARB;
             <enum name="GL_STENCIL_PASS_DEPTH_FAIL"/>
             <enum name="GL_STENCIL_PASS_DEPTH_PASS"/>
             <enum name="GL_STENCIL_REF"/>
             <enum name="GL_STENCIL_WRITEMASK"/>
             <enum name="GL_VIEWPORT"/>
             <enum name="GL_DITHER"/>
             <enum name="GL_BLEND_DST"/>
             <enum name="GL_BLEND_SRC"/>
             <enum name="GL_BLEND"/>
             <enum name="GL_LOGIC_OP_MODE"/>
-            <enum name="GL_COLOR_LOGIC_OP"/>
             <enum name="GL_DRAW_BUFFER"/>
             <enum name="GL_READ_BUFFER"/>
             <enum name="GL_SCISSOR_BOX"/>
             <enum name="GL_SCISSOR_TEST"/>
             <enum name="GL_COLOR_CLEAR_VALUE"/>
             <enum name="GL_COLOR_WRITEMASK"/>
             <enum name="GL_DOUBLEBUFFER"/>
             <enum name="GL_STEREO"/>
             <enum name="GL_LINE_SMOOTH_HINT"/>
             <enum name="GL_POLYGON_SMOOTH_HINT"/>
@@ -30424,46 +30851,33 @@ typedef unsigned int GLhandleARB;
             <enum name="GL_PACK_LSB_FIRST"/>
             <enum name="GL_PACK_ROW_LENGTH"/>
             <enum name="GL_PACK_SKIP_ROWS"/>
             <enum name="GL_PACK_SKIP_PIXELS"/>
             <enum name="GL_PACK_ALIGNMENT"/>
             <enum name="GL_MAX_TEXTURE_SIZE"/>
             <enum name="GL_MAX_VIEWPORT_DIMS"/>
             <enum name="GL_SUBPIXEL_BITS"/>
             <enum name="GL_TEXTURE_1D"/>
             <enum name="GL_TEXTURE_2D"/>
-            <enum name="GL_POLYGON_OFFSET_UNITS"/>
-            <enum name="GL_POLYGON_OFFSET_POINT"/>
-            <enum name="GL_POLYGON_OFFSET_LINE"/>
-            <enum name="GL_POLYGON_OFFSET_FILL"/>
-            <enum name="GL_POLYGON_OFFSET_FACTOR"/>
-            <enum name="GL_TEXTURE_BINDING_1D"/>
-            <enum name="GL_TEXTURE_BINDING_2D"/>
             <enum name="GL_TEXTURE_WIDTH"/>
             <enum name="GL_TEXTURE_HEIGHT"/>
-            <enum name="GL_TEXTURE_INTERNAL_FORMAT"/>
             <enum name="GL_TEXTURE_BORDER_COLOR"/>
-            <enum name="GL_TEXTURE_RED_SIZE"/>
-            <enum name="GL_TEXTURE_GREEN_SIZE"/>
-            <enum name="GL_TEXTURE_BLUE_SIZE"/>
-            <enum name="GL_TEXTURE_ALPHA_SIZE"/>
             <enum name="GL_DONT_CARE"/>
             <enum name="GL_FASTEST"/>
             <enum name="GL_NICEST"/>
             <enum name="GL_BYTE"/>
             <enum name="GL_UNSIGNED_BYTE"/>
             <enum name="GL_SHORT"/>
             <enum name="GL_UNSIGNED_SHORT"/>
             <enum name="GL_INT"/>
             <enum name="GL_UNSIGNED_INT"/>
             <enum name="GL_FLOAT"/>
-            <enum name="GL_DOUBLE"/>
             <enum name="GL_STACK_OVERFLOW"/>
             <enum name="GL_STACK_UNDERFLOW"/>
             <enum name="GL_CLEAR"/>
             <enum name="GL_AND"/>
             <enum name="GL_AND_REVERSE"/>
             <enum name="GL_COPY"/>
             <enum name="GL_AND_INVERTED"/>
             <enum name="GL_NOOP"/>
             <enum name="GL_XOR"/>
             <enum name="GL_OR"/>
@@ -30501,58 +30915,39 @@ typedef unsigned int GLhandleARB;
             <enum name="GL_NEAREST"/>
             <enum name="GL_LINEAR"/>
             <enum name="GL_NEAREST_MIPMAP_NEAREST"/>
             <enum name="GL_LINEAR_MIPMAP_NEAREST"/>
             <enum name="GL_NEAREST_MIPMAP_LINEAR"/>
             <enum name="GL_LINEAR_MIPMAP_LINEAR"/>
             <enum name="GL_TEXTURE_MAG_FILTER"/>
             <enum name="GL_TEXTURE_MIN_FILTER"/>
             <enum name="GL_TEXTURE_WRAP_S"/>
             <enum name="GL_TEXTURE_WRAP_T"/>
-            <enum name="GL_PROXY_TEXTURE_1D"/>
-            <enum name="GL_PROXY_TEXTURE_2D"/>
             <enum name="GL_REPEAT"/>
-            <enum name="GL_R3_G3_B2"/>
-            <enum name="GL_RGB4"/>
-            <enum name="GL_RGB5"/>
-            <enum name="GL_RGB8"/>
-            <enum name="GL_RGB10"/>
-            <enum name="GL_RGB12"/>
-            <enum name="GL_RGB16"/>
-            <enum name="GL_RGBA2"/>
-            <enum name="GL_RGBA4"/>
-            <enum name="GL_RGB5_A1"/>
-            <enum name="GL_RGBA8"/>
-            <enum name="GL_RGB10_A2"/>
-            <enum name="GL_RGBA12"/>
-            <enum name="GL_RGBA16"/>
             <enum name="GL_CURRENT_BIT"/>
             <enum name="GL_POINT_BIT"/>
             <enum name="GL_LINE_BIT"/>
             <enum name="GL_POLYGON_BIT"/>
             <enum name="GL_POLYGON_STIPPLE_BIT"/>
             <enum name="GL_PIXEL_MODE_BIT"/>
             <enum name="GL_LIGHTING_BIT"/>
             <enum name="GL_FOG_BIT"/>
             <enum name="GL_ACCUM_BUFFER_BIT"/>
             <enum name="GL_VIEWPORT_BIT"/>
             <enum name="GL_TRANSFORM_BIT"/>
             <enum name="GL_ENABLE_BIT"/>
             <enum name="GL_HINT_BIT"/>
             <enum name="GL_EVAL_BIT"/>
             <enum name="GL_LIST_BIT"/>
             <enum name="GL_TEXTURE_BIT"/>
             <enum name="GL_SCISSOR_BIT"/>
             <enum name="GL_ALL_ATTRIB_BITS"/>
-            <enum name="GL_CLIENT_PIXEL_STORE_BIT"/>
-            <enum name="GL_CLIENT_VERTEX_ARRAY_BIT"/>
-            <enum name="GL_CLIENT_ALL_ATTRIB_BITS"/>
             <enum name="GL_QUAD_STRIP"/>
             <enum name="GL_POLYGON"/>
             <enum name="GL_ACCUM"/>
             <enum name="GL_LOAD"/>
             <enum name="GL_RETURN"/>
             <enum name="GL_MULT"/>
             <enum name="GL_ADD"/>
             <enum name="GL_AUX0"/>
             <enum name="GL_AUX1"/>
             <enum name="GL_AUX2"/>
@@ -30578,28 +30973,20 @@ typedef unsigned int GLhandleARB;
             <enum name="GL_PIXEL_MAP_I_TO_I"/>
             <enum name="GL_PIXEL_MAP_S_TO_S"/>
             <enum name="GL_PIXEL_MAP_I_TO_R"/>
             <enum name="GL_PIXEL_MAP_I_TO_G"/>
             <enum name="GL_PIXEL_MAP_I_TO_B"/>
             <enum name="GL_PIXEL_MAP_I_TO_A"/>
             <enum name="GL_PIXEL_MAP_R_TO_R"/>
             <enum name="GL_PIXEL_MAP_G_TO_G"/>
             <enum name="GL_PIXEL_MAP_B_TO_B"/>
             <enum name="GL_PIXEL_MAP_A_TO_A"/>
-            <enum name="GL_VERTEX_ARRAY_POINTER"/>
-            <enum name="GL_NORMAL_ARRAY_POINTER"/>
-            <enum name="GL_COLOR_ARRAY_POINTER"/>
-            <enum name="GL_INDEX_ARRAY_POINTER"/>
-            <enum name="GL_TEXTURE_COORD_ARRAY_POINTER"/>
-            <enum name="GL_EDGE_FLAG_ARRAY_POINTER"/>
-            <enum name="GL_FEEDBACK_BUFFER_POINTER"/>
-            <enum name="GL_SELECTION_BUFFER_POINTER"/>
             <enum name="GL_CURRENT_COLOR"/>
             <enum name="GL_CURRENT_INDEX"/>
             <enum name="GL_CURRENT_NORMAL"/>
             <enum name="GL_CURRENT_TEXTURE_COORDS"/>
             <enum name="GL_CURRENT_RASTER_COLOR"/>
             <enum name="GL_CURRENT_RASTER_INDEX"/>
             <enum name="GL_CURRENT_RASTER_TEXTURE_COORDS"/>
             <enum name="GL_CURRENT_RASTER_POSITION"/>
             <enum name="GL_CURRENT_RASTER_POSITION_VALID"/>
             <enum name="GL_CURRENT_RASTER_DISTANCE"/>
@@ -30631,25 +31018,23 @@ typedef unsigned int GLhandleARB;
             <enum name="GL_ACCUM_CLEAR_VALUE"/>
             <enum name="GL_MATRIX_MODE"/>
             <enum name="GL_NORMALIZE"/>
             <enum name="GL_MODELVIEW_STACK_DEPTH"/>
             <enum name="GL_PROJECTION_STACK_DEPTH"/>
             <enum name="GL_TEXTURE_STACK_DEPTH"/>
             <enum name="GL_MODELVIEW_MATRIX"/>
             <enum name="GL_PROJECTION_MATRIX"/>
             <enum name="GL_TEXTURE_MATRIX"/>
             <enum name="GL_ATTRIB_STACK_DEPTH"/>
-            <enum name="GL_CLIENT_ATTRIB_STACK_DEPTH"/>
             <enum name="GL_ALPHA_TEST"/>
             <enum name="GL_ALPHA_TEST_FUNC"/>
             <enum name="GL_ALPHA_TEST_REF"/>
-            <enum name="GL_INDEX_LOGIC_OP"/>
             <enum name="GL_LOGIC_OP"/>
             <enum name="GL_AUX_BUFFERS"/>
             <enum name="GL_INDEX_CLEAR_VALUE"/>
             <enum name="GL_INDEX_WRITEMASK"/>
             <enum name="GL_INDEX_MODE"/>
             <enum name="GL_RGBA_MODE"/>
             <enum name="GL_RENDER_MODE"/>
             <enum name="GL_PERSPECTIVE_CORRECTION_HINT"/>
             <enum name="GL_POINT_SMOOTH_HINT"/>
             <enum name="GL_FOG_HINT"/>
@@ -30685,21 +31070,20 @@ typedef unsigned int GLhandleARB;
             <enum name="GL_DEPTH_BIAS"/>
             <enum name="GL_MAX_EVAL_ORDER"/>
             <enum name="GL_MAX_LIGHTS"/>
             <enum name="GL_MAX_CLIP_PLANES"/>
             <enum name="GL_MAX_PIXEL_MAP_TABLE"/>
             <enum name="GL_MAX_ATTRIB_STACK_DEPTH"/>
             <enum name="GL_MAX_MODELVIEW_STACK_DEPTH"/>
             <enum name="GL_MAX_NAME_STACK_DEPTH"/>
             <enum name="GL_MAX_PROJECTION_STACK_DEPTH"/>
             <enum name="GL_MAX_TEXTURE_STACK_DEPTH"/>
-            <enum name="GL_MAX_CLIENT_ATTRIB_STACK_DEPTH"/>
             <enum name="GL_INDEX_BITS"/>
             <enum name="GL_RED_BITS"/>
             <enum name="GL_GREEN_BITS"/>
             <enum name="GL_BLUE_BITS"/>
             <enum name="GL_ALPHA_BITS"/>
             <enum name="GL_DEPTH_BITS"/>
             <enum name="GL_STENCIL_BITS"/>
             <enum name="GL_ACCUM_RED_BITS"/>
             <enum name="GL_ACCUM_GREEN_BITS"/>
             <enum name="GL_ACCUM_BLUE_BITS"/>
@@ -30721,49 +31105,22 @@ typedef unsigned int GLhandleARB;
             <enum name="GL_MAP2_TEXTURE_COORD_1"/>
             <enum name="GL_MAP2_TEXTURE_COORD_2"/>
             <enum name="GL_MAP2_TEXTURE_COORD_3"/>
             <enum name="GL_MAP2_TEXTURE_COORD_4"/>
             <enum name="GL_MAP2_VERTEX_3"/>
             <enum name="GL_MAP2_VERTEX_4"/>
             <enum name="GL_MAP1_GRID_DOMAIN"/>
             <enum name="GL_MAP1_GRID_SEGMENTS"/>
             <enum name="GL_MAP2_GRID_DOMAIN"/>
             <enum name="GL_MAP2_GRID_SEGMENTS"/>
-            <enum name="GL_FEEDBACK_BUFFER_SIZE"/>
-            <enum name="GL_FEEDBACK_BUFFER_TYPE"/>
-            <enum name="GL_SELECTION_BUFFER_SIZE"/>
-            <enum name="GL_VERTEX_ARRAY"/>
-            <enum name="GL_NORMAL_ARRAY"/>
-            <enum name="GL_COLOR_ARRAY"/>
-            <enum name="GL_INDEX_ARRAY"/>
-            <enum name="GL_TEXTURE_COORD_ARRAY"/>
-            <enum name="GL_EDGE_FLAG_ARRAY"/>
-            <enum name="GL_VERTEX_ARRAY_SIZE"/>
-            <enum name="GL_VERTEX_ARRAY_TYPE"/>
-            <enum name="GL_VERTEX_ARRAY_STRIDE"/>
-            <enum name="GL_NORMAL_ARRAY_TYPE"/>
-            <enum name="GL_NORMAL_ARRAY_STRIDE"/>
-            <enum name="GL_COLOR_ARRAY_SIZE"/>
-            <enum name="GL_COLOR_ARRAY_TYPE"/>
-            <enum name="GL_COLOR_ARRAY_STRIDE"/>
-            <enum name="GL_INDEX_ARRAY_TYPE"/>
-            <enum name="GL_INDEX_ARRAY_STRIDE"/>
-            <enum name="GL_TEXTURE_COORD_ARRAY_SIZE"/>
-            <enum name="GL_TEXTURE_COORD_ARRAY_TYPE"/>
-            <enum name="GL_TEXTURE_COORD_ARRAY_STRIDE"/>
-            <enum name="GL_EDGE_FLAG_ARRAY_STRIDE"/>
             <enum name="GL_TEXTURE_COMPONENTS"/>
             <enum name="GL_TEXTURE_BORDER"/>
-            <enum name="GL_TEXTURE_LUMINANCE_SIZE"/>
-            <enum name="GL_TEXTURE_INTENSITY_SIZE"/>
-            <enum name="GL_TEXTURE_PRIORITY"/>
-            <enum name="GL_TEXTURE_RESIDENT"/>
             <enum name="GL_AMBIENT"/>
             <enum name="GL_DIFFUSE"/>
             <enum name="GL_SPECULAR"/>
             <enum name="GL_POSITION"/>
             <enum name="GL_SPOT_DIRECTION"/>
             <enum name="GL_SPOT_EXPONENT"/>
             <enum name="GL_SPOT_CUTOFF"/>
             <enum name="GL_CONSTANT_ATTENUATION"/>
             <enum name="GL_LINEAR_ATTENUATION"/>
             <enum name="GL_QUADRATIC_ATTENUATION"/>
@@ -30796,20 +31153,417 @@ typedef unsigned int GLhandleARB;
             <enum name="GL_TEXTURE_ENV_MODE"/>
             <enum name="GL_TEXTURE_ENV_COLOR"/>
             <enum name="GL_TEXTURE_ENV"/>
             <enum name="GL_EYE_LINEAR"/>
             <enum name="GL_OBJECT_LINEAR"/>
             <enum name="GL_SPHERE_MAP"/>
             <enum name="GL_TEXTURE_GEN_MODE"/>
             <enum name="GL_OBJECT_PLANE"/>
             <enum name="GL_EYE_PLANE"/>
             <enum name="GL_CLAMP"/>
+            <enum name="GL_CLIP_PLANE0"/>
+            <enum name="GL_CLIP_PLANE1"/>
+            <enum name="GL_CLIP_PLANE2"/>
+            <enum name="GL_CLIP_PLANE3"/>
+            <enum name="GL_CLIP_PLANE4"/>
+            <enum name="GL_CLIP_PLANE5"/>
+            <enum name="GL_LIGHT0"/>
+            <enum name="GL_LIGHT1"/>
+            <enum name="GL_LIGHT2"/>
+            <enum name="GL_LIGHT3"/>
+            <enum name="GL_LIGHT4"/>
+            <enum name="GL_LIGHT5"/>
+            <enum name="GL_LIGHT6"/>
+            <enum name="GL_LIGHT7"/>
+            <command name="glCullFace"/>
+            <command name="glFrontFace"/>
+            <command name="glHint"/>
+            <command name="glLineWidth"/>
+            <command name="glPointSize"/>
+            <command name="glPolygonMode"/>
+            <command name="glScissor"/>
+            <command name="glTexParameterf"/>
+            <command name="glTexParameterfv"/>
+            <command name="glTexParameteri"/>
+            <command name="glTexParameteriv"/>
+            <command name="glTexImage1D"/>
+            <command name="glTexImage2D"/>
+            <command name="glDrawBuffer"/>
+            <command name="glClear"/>
+            <command name="glClearColor"/>
+            <command name="glClearStencil"/>
+            <command name="glClearDepth"/>
+            <command name="glStencilMask"/>
+            <command name="glColorMask"/>
+            <command name="glDepthMask"/>
+            <command name="glDisable"/>
+            <command name="glEnable"/>
+            <command name="glFinish"/>
+            <command name="glFlush"/>
+            <command name="glBlendFunc"/>
+            <command name="glLogicOp"/>
+            <command name="glStencilFunc"/>
+            <command name="glStencilOp"/>
+            <command name="glDepthFunc"/>
+            <command name="glPixelStoref"/>
+            <command name="glPixelStorei"/>
+            <command name="glReadBuffer"/>
+            <command name="glReadPixels"/>
+            <command name="glGetBooleanv"/>
+            <command name="glGetDoublev"/>
+            <command name="glGetError"/>
+            <command name="glGetFloatv"/>
+            <command name="glGetIntegerv"/>
+            <command name="glGetString"/>
+            <command name="glGetTexImage"/>
+            <command name="glGetTexParameterfv"/>
+            <command name="glGetTexParameteriv"/>
+            <command name="glGetTexLevelParameterfv"/>
+            <command name="glGetTexLevelParameteriv"/>
+            <command name="glIsEnabled"/>
+            <command name="glDepthRange"/>
+            <command name="glViewport"/>
+            <command name="glNewList"/>
+            <command name="glEndList"/>
+            <command name="glCallList"/>
+            <command name="glCallLists"/>
+            <command name="glDeleteLists"/>
+            <command name="glGenLists"/>
+            <command name="glListBase"/>
+            <command name="glBegin"/>
+            <command name="glBitmap"/>
+            <command name="glColor3b"/>
+            <command name="glColor3bv"/>
+            <command name="glColor3d"/>
+            <command name="glColor3dv"/>
+            <command name="glColor3f"/>
+            <command name="glColor3fv"/>
+            <command name="glColor3i"/>
+            <command name="glColor3iv"/>
+            <command name="glColor3s"/>
+            <command name="glColor3sv"/>
+            <command name="glColor3ub"/>
+            <command name="glColor3ubv"/>
+            <command name="glColor3ui"/>
+            <command name="glColor3uiv"/>
+            <command name="glColor3us"/>
+            <command name="glColor3usv"/>
+            <command name="glColor4b"/>
+            <command name="glColor4bv"/>
+            <command name="glColor4d"/>
+            <command name="glColor4dv"/>
+            <command name="glColor4f"/>
+            <command name="glColor4fv"/>
+            <command name="glColor4i"/>
+            <command name="glColor4iv"/>
+            <command name="glColor4s"/>
+            <command name="glColor4sv"/>
+            <command name="glColor4ub"/>
+            <command name="glColor4ubv"/>
+            <command name="glColor4ui"/>
+            <command name="glColor4uiv"/>
+            <command name="glColor4us"/>
+            <command name="glColor4usv"/>
+            <command name="glEdgeFlag"/>
+            <command name="glEdgeFlagv"/>
+            <command name="glEnd"/>
+            <command name="glIndexd"/>
+            <command name="glIndexdv"/>
+            <command name="glIndexf"/>
+            <command name="glIndexfv"/>
+            <command name="glIndexi"/>
+            <command name="glIndexiv"/>
+            <command name="glIndexs"/>
+            <command name="glIndexsv"/>
+            <command name="glNormal3b"/>
+            <command name="glNormal3bv"/>
+            <command name="glNormal3d"/>
+            <command name="glNormal3dv"/>
+            <command name="glNormal3f"/>
+            <command name="glNormal3fv"/>
+            <command name="glNormal3i"/>
+            <command name="glNormal3iv"/>
+            <command name="glNormal3s"/>
+            <command name="glNormal3sv"/>
+            <command name="glRasterPos2d"/>
+            <command name="glRasterPos2dv"/>
+            <command name="glRasterPos2f"/>
+            <command name="glRasterPos2fv"/>
+            <command name="glRasterPos2i"/>
+            <command name="glRasterPos2iv"/>
+            <command name="glRasterPos2s"/>
+            <command name="glRasterPos2sv"/>
+            <command name="glRasterPos3d"/>
+            <command name="glRasterPos3dv"/>
+            <command name="glRasterPos3f"/>
+            <command name="glRasterPos3fv"/>
+            <command name="glRasterPos3i"/>
+            <command name="glRasterPos3iv"/>
+            <command name="glRasterPos3s"/>
+            <command name="glRasterPos3sv"/>
+            <command name="glRasterPos4d"/>
+            <command name="glRasterPos4dv"/>
+            <command name="glRasterPos4f"/>
+            <command name="glRasterPos4fv"/>
+            <command name="glRasterPos4i"/>
+            <command name="glRasterPos4iv"/>
+            <command name="glRasterPos4s"/>
+            <command name="glRasterPos4sv"/>
+            <command name="glRectd"/>
+            <command name="glRectdv"/>
+            <command name="glRectf"/>
+            <command name="glRectfv"/>
+            <command name="glRecti"/>
+            <command name="glRectiv"/>
+            <command name="glRects"/>
+            <command name="glRectsv"/>
+            <command name="glTexCoord1d"/>
+            <command name="glTexCoord1dv"/>
+            <command name="glTexCoord1f"/>
+            <command name="glTexCoord1fv"/>
+            <command name="glTexCoord1i"/>
+            <command name="glTexCoord1iv"/>
+            <command name="glTexCoord1s"/>
+            <command name="glTexCoord1sv"/>
+            <command name="glTexCoord2d"/>
+            <command name="glTexCoord2dv"/>
+            <command name="glTexCoord2f"/>
+            <command name="glTexCoord2fv"/>
+            <command name="glTexCoord2i"/>
+            <command name="glTexCoord2iv"/>
+            <command name="glTexCoord2s"/>
+            <command name="glTexCoord2sv"/>
+            <command name="glTexCoord3d"/>
+            <command name="glTexCoord3dv"/>
+            <command name="glTexCoord3f"/>
+            <command name="glTexCoord3fv"/>
+            <command name="glTexCoord3i"/>
+            <command name="glTexCoord3iv"/>
+            <command name="glTexCoord3s"/>
+            <command name="glTexCoord3sv"/>
+            <command name="glTexCoord4d"/>
+            <command name="glTexCoord4dv"/>
+            <command name="glTexCoord4f"/>
+            <command name="glTexCoord4fv"/>
+            <command name="glTexCoord4i"/>
+            <command name="glTexCoord4iv"/>
+            <command name="glTexCoord4s"/>
+            <command name="glTexCoord4sv"/>
+            <command name="glVertex2d"/>
+            <command name="glVertex2dv"/>
+            <command name="glVertex2f"/>
+            <command name="glVertex2fv"/>
+            <command name="glVertex2i"/>
+            <command name="glVertex2iv"/>
+            <command name="glVertex2s"/>
+            <command name="glVertex2sv"/>
+            <command name="glVertex3d"/>
+            <command name="glVertex3dv"/>
+            <command name="glVertex3f"/>
+            <command name="glVertex3fv"/>
+            <command name="glVertex3i"/>
+            <command name="glVertex3iv"/>
+            <command name="glVertex3s"/>
+            <command name="glVertex3sv"/>
+            <command name="glVertex4d"/>
+            <command name="glVertex4dv"/>
+            <command name="glVertex4f"/>
+            <command name="glVertex4fv"/>
+            <command name="glVertex4i"/>
+            <command name="glVertex4iv"/>
+            <command name="glVertex4s"/>
+            <command name="glVertex4sv"/>
+            <command name="glClipPlane"/>
+            <command name="glColorMaterial"/>
+            <command name="glFogf"/>
+            <command name="glFogfv"/>
+            <command name="glFogi"/>
+            <command name="glFogiv"/>
+            <command name="glLightf"/>
+            <command name="glLightfv"/>
+            <command name="glLighti"/>
+            <command name="glLightiv"/>
+            <command name="glLightModelf"/>
+            <command name="glLightModelfv"/>
+            <command name="glLightModeli"/>
+            <command name="glLightModeliv"/>
+            <command name="glLineStipple"/>
+            <command name="glMaterialf"/>
+            <command name="glMaterialfv"/>
+            <command name="glMateriali"/>
+            <command name="glMaterialiv"/>
+            <command name="glPolygonStipple"/>
+            <command name="glShadeModel"/>
+            <command name="glTexEnvf"/>
+            <command name="glTexEnvfv"/>
+            <command name="glTexEnvi"/>
+            <command name="glTexEnviv"/>
+            <command name="glTexGend"/>
+            <command name="glTexGendv"/>
+            <command name="glTexGenf"/>
+            <command name="glTexGenfv"/>
+            <command name="glTexGeni"/>
+            <command name="glTexGeniv"/>
+            <command name="glFeedbackBuffer"/>
+            <command name="glSelectBuffer"/>
+            <command name="glRenderMode"/>
+            <command name="glInitNames"/>
+            <command name="glLoadName"/>
+            <command name="glPassThrough"/>
+            <command name="glPopName"/>
+            <command name="glPushName"/>
+            <command name="glClearAccum"/>
+            <command name="glClearIndex"/>
+            <command name="glIndexMask"/>
+            <command name="glAccum"/>
+            <command name="glPopAttrib"/>
+            <command name="glPushAttrib"/>
+            <command name="glMap1d"/>
+            <command name="glMap1f"/>
+            <command name="glMap2d"/>
+            <command name="glMap2f"/>
+            <command name="glMapGrid1d"/>
+            <command name="glMapGrid1f"/>
+            <command name="glMapGrid2d"/>
+            <command name="glMapGrid2f"/>
+            <command name="glEvalCoord1d"/>
+            <command name="glEvalCoord1dv"/>
+            <command name="glEvalCoord1f"/>
+            <command name="glEvalCoord1fv"/>
+            <command name="glEvalCoord2d"/>
+            <command name="glEvalCoord2dv"/>
+            <command name="glEvalCoord2f"/>
+            <command name="glEvalCoord2fv"/>
+            <command name="glEvalMesh1"/>
+            <command name="glEvalPoint1"/>
+            <command name="glEvalMesh2"/>
+            <command name="glEvalPoint2"/>
+            <command name="glAlphaFunc"/>
+            <command name="glPixelZoom"/>
+            <command name="glPixelTransferf"/>
+            <command name="glPixelTransferi"/>
+            <command name="glPixelMapfv"/>
+            <command name="glPixelMapuiv"/>
+            <command name="glPixelMapusv"/>
+            <command name="glCopyPixels"/>
+            <command name="glDrawPixels"/>
+            <command name="glGetClipPlane"/>
+            <command name="glGetLightfv"/>
+            <command name="glGetLightiv"/>
+            <command name="glGetMapdv"/>
+            <command name="glGetMapfv"/>
+            <command name="glGetMapiv"/>
+            <command name="glGetMaterialfv"/>
+            <command name="glGetMaterialiv"/>
+            <command name="glGetPixelMapfv"/>
+            <command name="glGetPixelMapuiv"/>
+            <command name="glGetPixelMapusv"/>
+            <command name="glGetPolygonStipple"/>
+            <command name="glGetTexEnvfv"/>
+            <command name="glGetTexEnviv"/>
+            <command name="glGetTexGendv"/>
+            <command name="glGetTexGenfv"/>
+            <command name="glGetTexGeniv"/>
+            <command name="glIsList"/>
+            <command name="glFrustum"/>
+            <command name="glLoadIdentity"/>
+            <command name="glLoadMatrixf"/>
+            <command name="glLoadMatrixd"/>
+            <command name="glMatrixMode"/>
+            <command name="glMultMatrixf"/>
+            <command name="glMultMatrixd"/>
+            <command name="glOrtho"/>
+            <command name="glPopMatrix"/>
+            <command name="glPushMatrix"/>
+            <command name="glRotated"/>
+            <command name="glRotatef"/>
+            <command name="glScaled"/>
+            <command name="glScalef"/>
+            <command name="glTranslated"/>
+            <command name="glTranslatef"/>
+        </require>
+    </feature>
+    <feature api="gl" name="GL_VERSION_1_1" number="1.1">
+        <require>
+            <type name="GLclampf" comment="No longer used in GL 1.1, but still defined in Mesa gl.h"/>
+            <type name="GLclampd" comment="No longer used in GL 1.1, but still defined in Mesa gl.h"/>
+            <enum name="GL_COLOR_LOGIC_OP"/>
+            <enum name="GL_POLYGON_OFFSET_UNITS"/>
+            <enum name="GL_POLYGON_OFFSET_POINT"/>
+            <enum name="GL_POLYGON_OFFSET_LINE"/>
+            <enum name="GL_POLYGON_OFFSET_FILL"/>
+            <enum name="GL_POLYGON_OFFSET_FACTOR"/>
+            <enum name="GL_TEXTURE_BINDING_1D"/>
+            <enum name="GL_TEXTURE_BINDING_2D"/>
+            <enum name="GL_TEXTURE_INTERNAL_FORMAT"/>
+            <enum name="GL_TEXTURE_RED_SIZE"/>
+            <enum name="GL_TEXTURE_GREEN_SIZE"/>
+            <enum name="GL_TEXTURE_BLUE_SIZE"/>
+            <enum name="GL_TEXTURE_ALPHA_SIZE"/>
+            <enum name="GL_DOUBLE"/>
+            <enum name="GL_PROXY_TEXTURE_1D"/>
+            <enum name="GL_PROXY_TEXTURE_2D"/>
+            <enum name="GL_R3_G3_B2"/>
+            <enum name="GL_RGB4"/>
+            <enum name="GL_RGB5"/>
+            <enum name="GL_RGB8"/>
+            <enum name="GL_RGB10"/>
+            <enum name="GL_RGB12"/>
+            <enum name="GL_RGB16"/>
+            <enum name="GL_RGBA2"/>
+            <enum name="GL_RGBA4"/>
+            <enum name="GL_RGB5_A1"/>
+            <enum name="GL_RGBA8"/>
+            <enum name="GL_RGB10_A2"/>
+            <enum name="GL_RGBA12"/>
+            <enum name="GL_RGBA16"/>
+            <enum name="GL_CLIENT_PIXEL_STORE_BIT"/>
+            <enum name="GL_CLIENT_VERTEX_ARRAY_BIT"/>
+            <enum name="GL_CLIENT_ALL_ATTRIB_BITS"/>
+            <enum name="GL_VERTEX_ARRAY_POINTER"/>
+            <enum name="GL_NORMAL_ARRAY_POINTER"/>
+            <enum name="GL_COLOR_ARRAY_POINTER"/>
+            <enum name="GL_INDEX_ARRAY_POINTER"/>
+            <enum name="GL_TEXTURE_COORD_ARRAY_POINTER"/>
+            <enum name="GL_EDGE_FLAG_ARRAY_POINTER"/>
+            <enum name="GL_FEEDBACK_BUFFER_POINTER"/>
+            <enum name="GL_SELECTION_BUFFER_POINTER"/>
+            <enum name="GL_CLIENT_ATTRIB_STACK_DEPTH"/>
+            <enum name="GL_INDEX_LOGIC_OP"/>
+            <enum name="GL_MAX_CLIENT_ATTRIB_STACK_DEPTH"/>
+            <enum name="GL_FEEDBACK_BUFFER_SIZE"/>
+            <enum name="GL_FEEDBACK_BUFFER_TYPE"/>
+            <enum name="GL_SELECTION_BUFFER_SIZE"/>
+            <enum name="GL_VERTEX_ARRAY"/>
+            <enum name="GL_NORMAL_ARRAY"/>
+            <enum name="GL_COLOR_ARRAY"/>
+            <enum name="GL_INDEX_ARRAY"/>
+            <enum name="GL_TEXTURE_COORD_ARRAY"/>
+            <enum name="GL_EDGE_FLAG_ARRAY"/>
+            <enum name="GL_VERTEX_ARRAY_SIZE"/>
+            <enum name="GL_VERTEX_ARRAY_TYPE"/>
+            <enum name="GL_VERTEX_ARRAY_STRIDE"/>
+            <enum name="GL_NORMAL_ARRAY_TYPE"/>
+            <enum name="GL_NORMAL_ARRAY_STRIDE"/>
+            <enum name="GL_COLOR_ARRAY_SIZE"/>
+            <enum name="GL_COLOR_ARRAY_TYPE"/>
+            <enum name="GL_COLOR_ARRAY_STRIDE"/>
+            <enum name="GL_INDEX_ARRAY_TYPE"/>
+            <enum name="GL_INDEX_ARRAY_STRIDE"/>
+            <enum name="GL_TEXTURE_COORD_ARRAY_SIZE"/>
+            <enum name="GL_TEXTURE_COORD_ARRAY_TYPE"/>
+            <enum name="GL_TEXTURE_COORD_ARRAY_STRIDE"/>
+            <enum name="GL_EDGE_FLAG_ARRAY_STRIDE"/>
+            <enum name="GL_TEXTURE_LUMINANCE_SIZE"/>
+            <enum name="GL_TEXTURE_INTENSITY_SIZE"/>
+            <enum name="GL_TEXTURE_PRIORITY"/>
+            <enum name="GL_TEXTURE_RESIDENT"/>
             <enum name="GL_ALPHA4"/>
             <enum name="GL_ALPHA8"/>
             <enum name="GL_ALPHA12"/>
             <enum name="GL_ALPHA16"/>
             <enum name="GL_LUMINANCE4"/>
             <enum name="GL_LUMINANCE8"/>
             <enum name="GL_LUMINANCE12"/>
             <enum name="GL_LUMINANCE16"/>
             <enum name="GL_LUMINANCE4_ALPHA4"/>
             <enum name="GL_LUMINANCE6_ALPHA2"/>
@@ -30829,34 +31583,20 @@ typedef unsigned int GLhandleARB;
             <enum name="GL_C3F_V3F"/>
             <enum name="GL_N3F_V3F"/>
             <enum name="GL_C4F_N3F_V3F"/>
             <enum name="GL_T2F_V3F"/>
             <enum name="GL_T4F_V4F"/>
             <enum name="GL_T2F_C4UB_V3F"/>
             <enum name="GL_T2F_C3F_V3F"/>
             <enum name="GL_T2F_N3F_V3F"/>
             <enum name="GL_T2F_C4F_N3F_V3F"/>
             <enum name="GL_T4F_C4F_N3F_V4F"/>
-            <enum name="GL_CLIP_PLANE0"/>
-            <enum name="GL_CLIP_PLANE1"/>
-            <enum name="GL_CLIP_PLANE2"/>
-            <enum name="GL_CLIP_PLANE3"/>
-            <enum name="GL_CLIP_PLANE4"/>
-            <enum name="GL_CLIP_PLANE5"/>
-            <enum name="GL_LIGHT0"/>
-            <enum name="GL_LIGHT1"/>
-            <enum name="GL_LIGHT2"/>
-            <enum name="GL_LIGHT3"/>
-            <enum name="GL_LIGHT4"/>
-            <enum name="GL_LIGHT5"/>
-            <enum name="GL_LIGHT6"/>
-            <enum name="GL_LIGHT7"/>
             <command name="glDrawArrays"/>
             <command name="glDrawElements"/>
             <command name="glGetPointerv"/>
             <command name="glPolygonOffset"/>
             <command name="glCopyTexImage1D"/>
             <command name="glCopyTexImage2D"/>
             <command name="glCopyTexSubImage1D"/>
             <command name="glCopyTexSubImage2D"/>
             <command name="glTexSubImage1D"/>
             <command name="glTexSubImage2D"/>
@@ -33119,20 +33859,21 @@ typedef unsigned int GLhandleARB;
         </require>
         <require comment="Reuse commands from ARB_separate_shader_objects">
             <command name="glUseProgramStages"/>
             <command name="glActiveShaderProgram"/>
             <command name="glCreateShaderProgramv"/>
             <command name="glBindProgramPipeline"/>
             <command name="glDeleteProgramPipelines"/>
             <command name="glGenProgramPipelines"/>
             <command name="glIsProgramPipeline"/>
             <command name="glGetProgramPipelineiv"/>
+            <command name="glProgramParameteri"/>
             <command name="glProgramUniform1i"/>
             <command name="glProgramUniform1iv"/>
             <command name="glProgramUniform1f"/>
             <command name="glProgramUniform1fv"/>
             <command name="glProgramUniform1d"/>
             <command name="glProgramUniform1dv"/>
             <command name="glProgramUniform1ui"/>
             <command name="glProgramUniform1uiv"/>
             <command name="glProgramUniform2i"/>
             <command name="glProgramUniform2iv"/>
@@ -36500,21 +37241,51 @@ typedef unsigned int GLhandleARB;
             </require>
         </extension>
         <extension name="GL_AMD_draw_buffers_blend" supported="gl">
             <require>
                 <command name="glBlendFuncIndexedAMD"/>
                 <command name="glBlendFuncSeparateIndexedAMD"/>
                 <command name="glBlendEquationIndexedAMD"/>
                 <command name="glBlendEquationSeparateIndexedAMD"/>
             </require>
         </extension>
+        <extension name="GL_AMD_framebuffer_sample_positions" supported="gl">
+            <require>
+                <enum name="GL_SUBSAMPLE_DISTANCE_AMD"/>
+                <enum name="GL_PIXELS_PER_SAMPLE_PATTERN_X_AMD"/>
+                <enum name="GL_PIXELS_PER_SAMPLE_PATTERN_Y_AMD"/>
+                <enum name="GL_ALL_PIXELS_AMD"/>
+                <command name="glFramebufferSamplePositionsfvAMD"/>
+                <command name="glNamedFramebufferSamplePositionsfvAMD"/>
+                <command name="glGetFramebufferParameterfvAMD"/>
+                <command name="glGetNamedFramebufferParameterfvAMD"/>
+            </require>
+        </extension>
         <extension name="GL_AMD_gcn_shader" supported="gl"/>
+        <extension name="GL_AMD_gpu_shader_half_float" supported="gl">
+            <require>
+                <enum name="GL_FLOAT16_NV"/>
+                <enum name="GL_FLOAT16_VEC2_NV"/>
+                <enum name="GL_FLOAT16_VEC3_NV"/>
+                <enum name="GL_FLOAT16_VEC4_NV"/>
+                <enum name="GL_FLOAT16_MAT2_AMD"/>
+                <enum name="GL_FLOAT16_MAT3_AMD"/>
+                <enum name="GL_FLOAT16_MAT4_AMD"/>
+                <enum name="GL_FLOAT16_MAT2x3_AMD"/>
+                <enum name="GL_FLOAT16_MAT2x4_AMD"/>
+                <enum name="GL_FLOAT16_MAT3x2_AMD"/>
+                <enum name="GL_FLOAT16_MAT3x4_AMD"/>
+                <enum name="GL_FLOAT16_MAT4x2_AMD"/>
+                <enum name="GL_FLOAT16_MAT4x3_AMD"/>
+            </require>
+        </extension>
+        <extension name="GL_AMD_gpu_shader_int16" supported="gl"/>
         <extension name="GL_AMD_gpu_shader_int64" supported="gl">
             <require>
                 <enum name="GL_INT64_NV"/>
                 <enum name="GL_UNSIGNED_INT64_NV"/>
                 <enum name="GL_INT8_NV"/>
                 <enum name="GL_INT8_VEC2_NV"/>
                 <enum name="GL_INT8_VEC3_NV"/>
                 <enum name="GL_INT8_VEC4_NV"/>
                 <enum name="GL_INT16_NV"/>
                 <enum name="GL_INT16_VEC2_NV"/>
@@ -36612,21 +37383,21 @@ typedef unsigned int GLhandleARB;
             <require>
                 <enum name="GL_OCCLUSION_QUERY_EVENT_MASK_AMD"/>
                 <enum name="GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD"/>
                 <enum name="GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD"/>
                 <enum name="GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD"/>
                 <enum name="GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD"/>
                 <enum name="GL_QUERY_ALL_EVENT_BITS_AMD"/>
                 <command name="glQueryObjectParameteruiAMD"/>
             </require>
         </extension>
-        <extension name="GL_AMD_performance_monitor" supported="gl|gles2">
+        <extension name="GL_AMD_performance_monitor" supported="gl|glcore|gles2">
             <require>
                 <enum name="GL_COUNTER_TYPE_AMD"/>
                 <enum name="GL_COUNTER_RANGE_AMD"/>
                 <enum name="GL_UNSIGNED_INT64_AMD"/>
                 <enum name="GL_PERCENTAGE_AMD"/>
                 <enum name="GL_PERFMON_RESULT_AVAILABLE_AMD"/>
                 <enum name="GL_PERFMON_RESULT_SIZE_AMD"/>
                 <enum name="GL_PERFMON_RESULT_AMD"/>
                 <command name="glGetPerfMonitorGroupsAMD"/>
                 <command name="glGetPerfMonitorCountersAMD"/>
@@ -36663,20 +37434,21 @@ typedef unsigned int GLhandleARB;
                 <enum name="GL_SUBSAMPLE_DISTANCE_AMD"/>
                 <command name="glSetMultisamplefvAMD"/>
             </require>
         </extension>
         <extension name="GL_AMD_seamless_cubemap_per_texture" supported="gl">
             <require>
                 <enum name="GL_TEXTURE_CUBE_MAP_SEAMLESS"/>
             </require>
         </extension>
         <extension name="GL_AMD_shader_atomic_counter_ops" supported="gl"/>
+        <extension name="GL_AMD_shader_ballot" supported="gl"/>
         <extension name="GL_AMD_shader_stencil_export" supported="gl"/>
         <extension name="GL_AMD_shader_trinary_minmax" supported="gl"/>
         <extension name="GL_AMD_shader_explicit_vertex_parameter" supported="gl"/>
         <extension name="GL_AMD_sparse_texture" supported="gl">
             <require>
                 <enum name="GL_VIRTUAL_PAGE_SIZE_X_AMD"/>
                 <enum name="GL_VIRTUAL_PAGE_SIZE_Y_AMD"/>
                 <enum name="GL_VIRTUAL_PAGE_SIZE_Z_AMD"/>
                 <enum name="GL_MAX_SPARSE_TEXTURE_SIZE_AMD"/>
                 <enum name="GL_MAX_SPARSE_3D_TEXTURE_SIZE_AMD"/>
@@ -36690,20 +37462,21 @@ typedef unsigned int GLhandleARB;
         </extension>
         <extension name="GL_AMD_stencil_operation_extended" supported="gl">
             <require>
                 <enum name="GL_SET_AMD"/>
                 <enum name="GL_REPLACE_VALUE_AMD"/>
                 <enum name="GL_STENCIL_OP_VALUE_AMD"/>
                 <enum name="GL_STENCIL_BACK_OP_VALUE_AMD"/>
                 <command name="glStencilOpValueAMD"/>
             </require>
         </extension>
+        <extension name="GL_AMD_texture_gather_bias_lod" supported="gl"/>
         <extension name="GL_AMD_texture_texture4" supported="gl"/>
         <extension name="GL_AMD_transform_feedback3_lines_triangles" supported="gl"/>
         <extension name="GL_AMD_transform_feedback4" supported="gl">
             <require>
                 <enum name="GL_STREAM_RASTERIZATION_AMD"/>
             </require>
         </extension>
         <extension name="GL_AMD_vertex_shader_layer" supported="gl"/>
         <extension name="GL_AMD_vertex_shader_tessellator" supported="gl">
             <require>
@@ -36914,21 +37687,21 @@ typedef unsigned int GLhandleARB;
                 <enum name="GL_RELEASED_APPLE"/>
                 <enum name="GL_VOLATILE_APPLE"/>
                 <enum name="GL_RETAINED_APPLE"/>
                 <enum name="GL_UNDEFINED_APPLE"/>
                 <enum name="GL_PURGEABLE_APPLE"/>
                 <command name="glObjectPurgeableAPPLE"/>
                 <command name="glObjectUnpurgeableAPPLE"/>
                 <command name="glGetObjectParameterivAPPLE"/>
             </require>
         </extension>
-        <extension name="GL_APPLE_rgb_422" supported="gl|gles2">
+        <extension name="GL_APPLE_rgb_422" supported="gl|glcore|gles2">
             <require>
                 <enum name="GL_RGB_422_APPLE"/>
                 <enum name="GL_UNSIGNED_SHORT_8_8_APPLE"/>
                 <enum name="GL_UNSIGNED_SHORT_8_8_REV_APPLE"/>
             </require>
             <require comment="Depends on TexStorage* (EXT_texture_storage / ES 3.0 / GL 4.4 / etc.)">
                 <enum name="GL_RGB_RAW_422_APPLE"/>
             </require>
         </extension>
         <extension name="GL_APPLE_row_bytes" supported="gl">
@@ -37083,21 +37856,21 @@ typedef unsigned int GLhandleARB;
                 <command name="glDepthRangef"/>
                 <command name="glClearDepthf"/>
             </require>
         </extension>
         <extension name="GL_ARB_ES3_1_compatibility" supported="gl|glcore">
             <require>
                 <enum name="GL_BACK"/>
                 <command name="glMemoryBarrierByRegion"/>
             </require>
         </extension>
-        <extension name="GL_ARB_ES3_2_compatibility" supported="gl">
+        <extension name="GL_ARB_ES3_2_compatibility" supported="gl|glcore">
             <require>
                 <enum name="GL_PRIMITIVE_BOUNDING_BOX_ARB"/>
                 <enum name="GL_MULTISAMPLE_LINE_WIDTH_RANGE_ARB"/>
                 <enum name="GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY_ARB"/>
                 <command name="glPrimitiveBoundingBoxARB"/>
             </require>
         </extension>
         <extension name="GL_ARB_ES3_compatibility" supported="gl|glcore">
             <require>
                 <enum name="GL_COMPRESSED_RGB8_ETC2"/>
@@ -37509,21 +38282,21 @@ typedef unsigned int GLhandleARB;
             </require>
         </extension>
         <extension name="GL_ARB_draw_indirect" supported="gl|glcore">
             <require>
                 <enum name="GL_DRAW_INDIRECT_BUFFER"/>
                 <enum name="GL_DRAW_INDIRECT_BUFFER_BINDING"/>
                 <command name="glDrawArraysIndirect"/>
                 <command name="glDrawElementsIndirect"/>
             </require>
         </extension>
-        <extension name="GL_ARB_draw_instanced" supported="gl">
+        <extension name="GL_ARB_draw_instanced" supported="gl|glcore">
             <require>
                 <command name="glDrawArraysInstancedARB"/>
                 <command name="glDrawElementsInstancedARB"/>
             </require>
         </extension>
         <extension name="GL_ARB_enhanced_layouts" supported="gl|glcore">
             <require>
                 <enum name="GL_LOCATION_COMPONENT"/>
                 <enum name="GL_TRANSFORM_FEEDBACK_BUFFER"/>
                 <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_INDEX"/>
@@ -37642,21 +38415,21 @@ typedef unsigned int GLhandleARB;
             </require>
         </extension>
         <extension name="GL_ARB_fragment_program_shadow" supported="gl"/>
         <extension name="GL_ARB_fragment_shader" supported="gl">
             <require>
                 <enum name="GL_FRAGMENT_SHADER_ARB"/>
                 <enum name="GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB"/>
                 <enum name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB"/>
             </require>
         </extension>
-        <extension name="GL_ARB_fragment_shader_interlock" supported="gl"/>
+        <extension name="GL_ARB_fragment_shader_interlock" supported="gl|glcore"/>
         <extension name="GL_ARB_framebuffer_no_attachments" supported="gl|glcore">
             <require>
                 <enum name="GL_FRAMEBUFFER_DEFAULT_WIDTH"/>
                 <enum name="GL_FRAMEBUFFER_DEFAULT_HEIGHT"/>
                 <enum name="GL_FRAMEBUFFER_DEFAULT_LAYERS"/>
                 <enum name="GL_FRAMEBUFFER_DEFAULT_SAMPLES"/>
                 <enum name="GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS"/>
                 <enum name="GL_MAX_FRAMEBUFFER_WIDTH"/>
                 <enum name="GL_MAX_FRAMEBUFFER_HEIGHT"/>
                 <enum name="GL_MAX_FRAMEBUFFER_LAYERS"/>
@@ -37762,21 +38535,21 @@ typedef unsigned int GLhandleARB;
             </require>
             <require api="gl" profile="compatibility">
                 <enum name="GL_INDEX"/>
             </require>
         </extension>
         <extension name="GL_ARB_framebuffer_sRGB" supported="gl|glcore">
             <require>
                 <enum name="GL_FRAMEBUFFER_SRGB"/>
             </require>
         </extension>
-        <extension name="GL_ARB_geometry_shader4" supported="gl">
+        <extension name="GL_ARB_geometry_shader4" supported="gl|glcore">
             <require>
                 <enum name="GL_LINES_ADJACENCY_ARB"/>
                 <enum name="GL_LINE_STRIP_ADJACENCY_ARB"/>
                 <enum name="GL_TRIANGLES_ADJACENCY_ARB"/>
                 <enum name="GL_TRIANGLE_STRIP_ADJACENCY_ARB"/>
                 <enum name="GL_PROGRAM_POINT_SIZE_ARB"/>
                 <enum name="GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB"/>
                 <enum name="GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB"/>
                 <enum name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB"/>
                 <enum name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB"/>
@@ -37852,21 +38625,21 @@ typedef unsigned int GLhandleARB;
                 <command name="glUniformMatrix4dv"/>
                 <command name="glUniformMatrix2x3dv"/>
                 <command name="glUniformMatrix2x4dv"/>
                 <command name="glUniformMatrix3x2dv"/>
                 <command name="glUniformMatrix3x4dv"/>
                 <command name="glUniformMatrix4x2dv"/>
                 <command name="glUniformMatrix4x3dv"/>
                 <command name="glGetUniformdv"/>
             </require>
         </extension>
-        <extension name="GL_ARB_gpu_shader_int64" supported="gl">
+        <extension name="GL_ARB_gpu_shader_int64" supported="gl|glcore">
             <require>
                 <enum name="GL_INT64_ARB"/>
                 <enum name="GL_UNSIGNED_INT64_ARB"/>
                 <enum name="GL_INT64_VEC2_ARB"/>
                 <enum name="GL_INT64_VEC3_ARB"/>
                 <enum name="GL_INT64_VEC4_ARB"/>
                 <enum name="GL_UNSIGNED_INT64_VEC2_ARB"/>
                 <enum name="GL_UNSIGNED_INT64_VEC3_ARB"/>
                 <enum name="GL_UNSIGNED_INT64_VEC4_ARB"/>
                 <command name="glUniform1i64ARB"/>
@@ -38035,21 +38808,21 @@ typedef unsigned int GLhandleARB;
             </require>
         </extension>
         <extension name="GL_ARB_indirect_parameters" supported="gl|glcore">
             <require>
                 <enum name="GL_PARAMETER_BUFFER_ARB"/>
                 <enum name="GL_PARAMETER_BUFFER_BINDING_ARB"/>
                 <command name="glMultiDrawArraysIndirectCountARB"/>
                 <command name="glMultiDrawElementsIndirectCountARB"/>
             </require>
         </extension>
-        <extension name="GL_ARB_instanced_arrays" supported="gl">
+        <extension name="GL_ARB_instanced_arrays" supported="gl|glcore">
             <require>
                 <enum name="GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB"/>
                 <command name="glVertexAttribDivisorARB"/>
             </require>
         </extension>
         <extension name="GL_ARB_internalformat_query" supported="gl|glcore">
             <require>
                 <enum name="GL_NUM_SAMPLE_COUNTS"/>
                 <command name="glGetInternalformativ"/>
             </require>
@@ -38338,21 +39111,21 @@ typedef unsigned int GLhandleARB;
                 <command name="glGetQueryivARB"/>
                 <command name="glGetQueryObjectivARB"/>
                 <command name="glGetQueryObjectuivARB"/>
             </require>
         </extension>
         <extension name="GL_ARB_occlusion_query2" supported="gl|glcore">
             <require>
                 <enum name="GL_ANY_SAMPLES_PASSED"/>
             </require>
         </extension>
-        <extension name="GL_ARB_parallel_shader_compile" supported="gl">
+        <extension name="GL_ARB_parallel_shader_compile" supported="gl|glcore">
             <require>
                 <enum name="GL_MAX_SHADER_COMPILER_THREADS_ARB"/>
                 <enum name="GL_COMPLETION_STATUS_ARB"/>
                 <command name="glMaxShaderCompilerThreadsARB"/>
             </require>
         </extension>
         <extension name="GL_ARB_pipeline_statistics_query" supported="gl|glcore">
             <require>
                 <enum name="GL_VERTICES_SUBMITTED_ARB"/>
                 <enum name="GL_PRIMITIVES_SUBMITTED_ARB"/>
@@ -38360,21 +39133,21 @@ typedef unsigned int GLhandleARB;
                 <enum name="GL_TESS_CONTROL_SHADER_PATCHES_ARB"/>
                 <enum name="GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB"/>
                 <enum name="GL_GEOMETRY_SHADER_INVOCATIONS"/>
                 <enum name="GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB"/>
                 <enum name="GL_FRAGMENT_SHADER_INVOCATIONS_ARB"/>
                 <enum name="GL_COMPUTE_SHADER_INVOCATIONS_ARB"/>
                 <enum name="GL_CLIPPING_INPUT_PRIMITIVES_ARB"/>
                 <enum name="GL_CLIPPING_OUTPUT_PRIMITIVES_ARB"/>
             </require>
         </extension>
-        <extension name="GL_ARB_pixel_buffer_object" supported="gl">
+        <extension name="GL_ARB_pixel_buffer_object" supported="gl|glcore">
             <require>
                 <enum name="GL_PIXEL_PACK_BUFFER_ARB"/>
                 <enum name="GL_PIXEL_UNPACK_BUFFER_ARB"/>
                 <enum name="GL_PIXEL_PACK_BUFFER_BINDING_ARB"/>
                 <enum name="GL_PIXEL_UNPACK_BUFFER_BINDING_ARB"/>
             </require>
         </extension>
         <extension name="GL_ARB_point_parameters" supported="gl">
             <require>
                 <enum name="GL_POINT_SIZE_MIN_ARB"/>
@@ -38384,21 +39157,21 @@ typedef unsigned int GLhandleARB;
                 <command name="glPointParameterfARB"/>
                 <command name="glPointParameterfvARB"/>
             </require>
         </extension>
         <extension name="GL_ARB_point_sprite" supported="gl">
             <require>
                 <enum name="GL_POINT_SPRITE_ARB"/>
                 <enum name="GL_COORD_REPLACE_ARB"/>
             </require>
         </extension>
-        <extension name="GL_ARB_post_depth_coverage" supported="gl"/>
+        <extension name="GL_ARB_post_depth_coverage" supported="gl|glcore"/>
         <extension name="GL_ARB_program_interface_query" supported="gl|glcore">
             <require>
                 <enum name="GL_UNIFORM"/>
                 <enum name="GL_UNIFORM_BLOCK"/>
                 <enum name="GL_PROGRAM_INPUT"/>
                 <enum name="GL_PROGRAM_OUTPUT"/>
                 <enum name="GL_BUFFER_VARIABLE"/>
                 <enum name="GL_SHADER_STORAGE_BLOCK"/>
                 <enum name="GL_ATOMIC_COUNTER_BUFFER"/>
                 <enum name="GL_VERTEX_SUBROUTINE"/>
@@ -38498,21 +39271,21 @@ typedef unsigned int GLhandleARB;
                 <command name="glGetnPixelMapusvARB"/>
                 <command name="glGetnPolygonStippleARB"/>
                 <command name="glGetnColorTableARB"/>
                 <command name="glGetnConvolutionFilterARB"/>
                 <command name="glGetnSeparableFilterARB"/>
                 <command name="glGetnHistogramARB"/>
                 <command name="glGetnMinmaxARB"/>
             </require>
         </extension>
         <extension name="GL_ARB_robustness_isolation" supported="gl|glcore"/>
-        <extension name="GL_ARB_sample_locations" supported="gl">
+        <extension name="GL_ARB_sample_locations" supported="gl|glcore">
             <require>
                 <enum name="GL_SAMPLE_LOCATION_SUBPIXEL_BITS_ARB"/>
                 <enum name="GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_ARB"/>
                 <enum name="GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_ARB"/>
                 <enum name="GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_ARB"/>
                 <enum name="GL_SAMPLE_LOCATION_ARB"/>
                 <enum name="GL_PROGRAMMABLE_SAMPLE_LOCATION_ARB"/>
                 <enum name="GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_ARB"/>
                 <enum name="GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_ARB"/>
                 <command name="glFramebufferSampleLocationsfvARB"/>
@@ -38568,20 +39341,21 @@ typedef unsigned int GLhandleARB;
                 <enum name="GL_ACTIVE_PROGRAM"/>
                 <enum name="GL_PROGRAM_PIPELINE_BINDING"/>
                 <command name="glUseProgramStages"/>
                 <command name="glActiveShaderProgram"/>
                 <command name="glCreateShaderProgramv"/>
                 <command name="glBindProgramPipeline"/>
                 <command name="glDeleteProgramPipelines"/>
                 <command name="glGenProgramPipelines"/>
                 <command name="glIsProgramPipeline"/>
                 <command name="glGetProgramPipelineiv"/>
+                <command name="glProgramParameteri"/>
                 <command name="glProgramUniform1i"/>
                 <command name="glProgramUniform1iv"/>
                 <command name="glProgramUniform1f"/>
                 <command name="glProgramUniform1fv"/>
                 <command name="glProgramUniform1d"/>
                 <command name="glProgramUniform1dv"/>
                 <command name="glProgramUniform1ui"/>
                 <command name="glProgramUniform1uiv"/>
                 <command name="glProgramUniform2i"/>
                 <command name="glProgramUniform2iv"/>
@@ -38622,21 +39396,21 @@ typedef unsigned int GLhandleARB;
                 <command name="glProgramUniformMatrix2x3dv"/>
                 <command name="glProgramUniformMatrix3x2dv"/>
                 <command name="glProgramUniformMatrix2x4dv"/>
                 <command name="glProgramUniformMatrix4x2dv"/>
                 <command name="glProgramUniformMatrix3x4dv"/>
                 <command name="glProgramUniformMatrix4x3dv"/>
                 <command name="glValidateProgramPipeline"/>
                 <command name="glGetProgramPipelineInfoLog"/>
             </require>
         </extension>
-        <extension name="GL_ARB_shader_atomic_counter_ops" supported="gl"/>
+        <extension name="GL_ARB_shader_atomic_counter_ops" supported="gl|glcore"/>
         <extension name="GL_ARB_shader_atomic_counters" supported="gl|glcore">
             <require>
                 <enum name="GL_ATOMIC_COUNTER_BUFFER"/>
                 <enum name="GL_ATOMIC_COUNTER_BUFFER_BINDING"/>
                 <enum name="GL_ATOMIC_COUNTER_BUFFER_START"/>
                 <enum name="GL_ATOMIC_COUNTER_BUFFER_SIZE"/>
                 <enum name="GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE"/>
                 <enum name="GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS"/>
                 <enum name="GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES"/>
                 <enum name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER"/>
@@ -38657,23 +39431,23 @@ typedef unsigned int GLhandleARB;
                 <enum name="GL_MAX_FRAGMENT_ATOMIC_COUNTERS"/>
                 <enum name="GL_MAX_COMBINED_ATOMIC_COUNTERS"/>
                 <enum name="GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE"/>
                 <enum name="GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS"/>
                 <enum name="GL_ACTIVE_ATOMIC_COUNTER_BUFFERS"/>
                 <enum name="GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX"/>
                 <enum name="GL_UNSIGNED_INT_ATOMIC_COUNTER"/>
                 <command name="glGetActiveAtomicCounterBufferiv"/>
             </require>
         </extension>
-        <extension name="GL_ARB_shader_ballot" supported="gl"/>
+        <extension name="GL_ARB_shader_ballot" supported="gl|glcore"/>
         <extension name="GL_ARB_shader_bit_encoding" supported="gl|glcore"/>
-        <extension name="GL_ARB_shader_clock" supported="gl"/>
+        <extension name="GL_ARB_shader_clock" supported="gl|glcore"/>
         <extension name="GL_ARB_shader_draw_parameters" supported="gl|glcore"/>
         <extension name="GL_ARB_shader_group_vote" supported="gl|glcore"/>
         <extension name="GL_ARB_shader_image_load_store" supported="gl|glcore">
             <require>
                 <enum name="GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT"/>
                 <enum name="GL_ELEMENT_ARRAY_BARRIER_BIT"/>
                 <enum name="GL_UNIFORM_BARRIER_BIT"/>
                 <enum name="GL_TEXTURE_FETCH_BARRIER_BIT"/>
                 <enum name="GL_SHADER_IMAGE_ACCESS_BARRIER_BIT"/>
                 <enum name="GL_COMMAND_BARRIER_BIT"/>
@@ -38859,21 +39633,21 @@ typedef unsigned int GLhandleARB;
                 <command name="glGetActiveSubroutineUniformiv"/>
                 <command name="glGetActiveSubroutineUniformName"/>
                 <command name="glGetActiveSubroutineName"/>
                 <command name="glUniformSubroutinesuiv"/>
                 <command name="glGetUniformSubroutineuiv"/>
                 <command name="glGetProgramStageiv"/>
             </require>
         </extension>
         <extension name="GL_ARB_shader_texture_image_samples" supported="gl|glcore"/>
         <extension name="GL_ARB_shader_texture_lod" supported="gl"/>
-        <extension name="GL_ARB_shader_viewport_layer_array" supported="gl"/>
+        <extension name="GL_ARB_shader_viewport_layer_array" supported="gl|glcore"/>
         <extension name="GL_ARB_shading_language_100" supported="gl">
             <require>
                 <enum name="GL_SHADING_LANGUAGE_VERSION_ARB"/>
             </require>
         </extension>
         <extension name="GL_ARB_shading_language_420pack" supported="gl|glcore"/>
         <extension name="GL_ARB_shading_language_include" supported="gl|glcore">
             <require>
                 <enum name="GL_SHADER_INCLUDE_ARB"/>
                 <enum name="GL_NAMED_STRING_LENGTH_ARB"/>
@@ -38921,22 +39695,29 @@ typedef unsigned int GLhandleARB;
                 <enum name="GL_VIRTUAL_PAGE_SIZE_X_ARB"/>
                 <enum name="GL_VIRTUAL_PAGE_SIZE_Y_ARB"/>
                 <enum name="GL_VIRTUAL_PAGE_SIZE_Z_ARB"/>
                 <enum name="GL_MAX_SPARSE_TEXTURE_SIZE_ARB"/>
                 <enum name="GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB"/>
                 <enum name="GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB"/>
                 <enum name="GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB"/>
                 <command name="glTexPageCommitmentARB"/>
             </require>
         </extension>
-        <extension name="GL_ARB_sparse_texture2" supported="gl|gles2"/>
-        <extension name="GL_ARB_sparse_texture_clamp" supported="gl"/>
+        <extension name="GL_ARB_sparse_texture2" supported="gl|glcore"/>
+        <extension name="GL_ARB_sparse_texture_clamp" supported="gl|glcore"/>
+        <extension name="GL_ARB_gl_spirv" supported="gl|glcore">
+            <require>
+                <enum name="GL_SHADER_BINARY_FORMAT_SPIR_V_ARB"/>
+                <enum name="GL_SPIR_V_BINARY_ARB"/>
+                <command name="glSpecializeShaderARB"/>
+            </require>
+        </extension>
         <extension name="GL_ARB_stencil_texturing" supported="gl|glcore">
             <require>
                 <enum name="GL_DEPTH_STENCIL_TEXTURE_MODE"/>
             </require>
         </extension>
         <extension name="GL_ARB_sync" supported="gl|glcore">
             <require>
                 <enum name="GL_MAX_SERVER_WAIT_TIMEOUT"/>
                 <enum name="GL_OBJECT_TYPE"/>
                 <enum name="GL_SYNC_CONDITION"/>
@@ -39002,26 +39783,26 @@ typedef unsigned int GLhandleARB;
                 <enum name="GL_TESS_CONTROL_SHADER"/>
                 <command name="glPatchParameteri"/>
                 <command name="glPatchParameterfv"/>
             </require>
         </extension>
         <extension name="GL_ARB_texture_barrier" supported="gl|glcore">
             <require>
                 <command name="glTextureBarrier"/>
             </require>
         </extension>
-        <extension name="GL_ARB_texture_border_clamp" supported="gl">
+        <extension name="GL_ARB_texture_border_clamp" supported="gl|glcore">
             <require>
                 <enum name="GL_CLAMP_TO_BORDER_ARB"/>
             </require>
         </extension>
-        <extension name="GL_ARB_texture_buffer_object" supported="gl">
+        <extension name="GL_ARB_texture_buffer_object" supported="gl|glcore">
             <require>
                 <enum name="GL_TEXTURE_BUFFER_ARB"/>
                 <enum name="GL_MAX_TEXTURE_BUFFER_SIZE_ARB"/>
                 <enum name="GL_TEXTURE_BINDING_BUFFER_ARB"/>
                 <enum name="GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB"/>
                 <enum name="GL_TEXTURE_BUFFER_FORMAT_ARB"/>
                 <command name="glTexBufferARB"/>
             </require>
         </extension>
         <extension name="GL_ARB_texture_buffer_object_rgb32" supported="gl|glcore">
@@ -39131,21 +39912,21 @@ typedef unsigned int GLhandleARB;
                 <enum name="GL_PREVIOUS_ARB"/>
             </require>
         </extension>
         <extension name="GL_ARB_texture_env_crossbar" supported="gl"/>
         <extension name="GL_ARB_texture_env_dot3" supported="gl">
             <require>
                 <enum name="GL_DOT3_RGB_ARB"/>
                 <enum name="GL_DOT3_RGBA_ARB"/>
             </require>
         </extension>
-        <extension name="GL_ARB_texture_filter_minmax" supported="gl">
+        <extension name="GL_ARB_texture_filter_minmax" supported="gl|glcore">
             <require>
                 <enum name="GL_TEXTURE_REDUCTION_MODE_ARB"/>
                 <enum name="GL_WEIGHTED_AVERAGE_ARB"/>
             </require>
         </extension>
         <extension name="GL_ARB_texture_float" supported="gl">
             <require>
                 <enum name="GL_TEXTURE_RED_TYPE_ARB"/>
                 <enum name="GL_TEXTURE_GREEN_TYPE_ARB"/>
                 <enum name="GL_TEXTURE_BLUE_TYPE_ARB"/>
@@ -39173,21 +39954,21 @@ typedef unsigned int GLhandleARB;
                 <enum name="GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB"/>
                 <enum name="GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB"/>
                 <enum name="GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB"/>
             </require>
         </extension>
         <extension name="GL_ARB_texture_mirror_clamp_to_edge" supported="gl|glcore">
             <require>
                 <enum name="GL_MIRROR_CLAMP_TO_EDGE"/>
             </require>
         </extension>
-        <extension name="GL_ARB_texture_mirrored_repeat" supported="gl">
+        <extension name="GL_ARB_texture_mirrored_repeat" supported="gl|glcore">
             <require>
                 <enum name="GL_MIRRORED_REPEAT_ARB"/>
             </require>
         </extension>
         <extension name="GL_ARB_texture_multisample" supported="gl|glcore">
             <require>
                 <enum name="GL_SAMPLE_POSITION"/>
                 <enum name="GL_SAMPLE_MASK"/>
                 <enum name="GL_SAMPLE_MASK_VALUE"/>
                 <enum name="GL_MAX_SAMPLE_MASK_WORDS"/>
@@ -39207,21 +39988,21 @@ typedef unsigned int GLhandleARB;
                 <enum name="GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY"/>
                 <enum name="GL_MAX_COLOR_TEXTURE_SAMPLES"/>
                 <enum name="GL_MAX_DEPTH_TEXTURE_SAMPLES"/>
                 <enum name="GL_MAX_INTEGER_SAMPLES"/>
                 <command name="glTexImage2DMultisample"/>
                 <command name="glTexImage3DMultisample"/>
                 <command name="glGetMultisamplefv"/>
                 <command name="glSampleMaski"/>
             </require>
         </extension>
-        <extension name="GL_ARB_texture_non_power_of_two" supported="gl"/>
+        <extension name="GL_ARB_texture_non_power_of_two" supported="gl|glcore"/>
         <extension name="GL_ARB_texture_query_levels" supported="gl|glcore"/>
         <extension name="GL_ARB_texture_query_lod" supported="gl|glcore"/>
         <extension name="GL_ARB_texture_rectangle" supported="gl">
             <require>
                 <enum name="GL_TEXTURE_RECTANGLE_ARB"/>
                 <enum name="GL_TEXTURE_BINDING_RECTANGLE_ARB"/>
                 <enum name="GL_PROXY_TEXTURE_RECTANGLE_ARB"/>
                 <enum name="GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB"/>
             </require>
         </extension>
@@ -40248,20 +41029,22 @@ typedef unsigned int GLhandleARB;
             </require>
         </extension>
         <extension name="GL_EXT_422_pixels" supported="gl">
             <require>
                 <enum name="GL_422_EXT"/>
                 <enum name="GL_422_REV_EXT"/>
                 <enum name="GL_422_AVERAGE_EXT"/>
                 <enum name="GL_422_REV_AVERAGE_EXT"/>
             </require>
         </extension>
+        <extension name="GL_EXT_EGL_image_array" supported="gles2">
+        </extension>
         <extension name="GL_EXT_YUV_target" supported="gles2">
             <require>
                 <enum name="GL_SAMPLER_EXTERNAL_2D_Y2Y_EXT"/>
                 <enum name="GL_TEXTURE_EXTERNAL_OES"/>
                 <enum name="GL_TEXTURE_BINDING_EXTERNAL_OES"/>
                 <enum name="GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES"/>
             </require>
         </extension>
         <extension name="GL_EXT_abgr" supported="gl">
             <require>
@@ -40361,20 +41144,26 @@ typedef unsigned int GLhandleARB;
                 <enum name="GL_MAP_COHERENT_BIT_EXT"/>
                 <enum name="GL_DYNAMIC_STORAGE_BIT_EXT"/>
                 <enum name="GL_CLIENT_STORAGE_BIT_EXT"/>
                 <enum name="GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT"/>
                 <enum name="GL_BUFFER_IMMUTABLE_STORAGE_EXT"/>
                 <enum name="GL_BUFFER_STORAGE_FLAGS_EXT"/>
                 <command name="glBufferStorageEXT"/>
                 <!-- <command name="glNamedBufferStorageEXT"/> -->
             </require>
         </extension>
+        <extension name="GL_EXT_clear_texture" supported="gles2">
+            <require>
+                <command name="glClearTexImageEXT"/>
+                <command name="glClearTexSubImageEXT"/>
+            </require>
+        </extension>
         <extension name="GL_EXT_clip_cull_distance" supported="gles2">
             <require>
                 <enum name="GL_MAX_CLIP_DISTANCES_EXT"/>
                 <enum name="GL_MAX_CULL_DISTANCES_EXT"/>
                 <enum name="GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES_EXT"/>
                 <enum name="GL_CLIP_DISTANCE0_EXT"/>
                 <enum name="GL_CLIP_DISTANCE1_EXT"/>
                 <enum name="GL_CLIP_DISTANCE2_EXT"/>
                 <enum name="GL_CLIP_DISTANCE3_EXT"/>
                 <enum name="GL_CLIP_DISTANCE4_EXT"/>
@@ -40414,20 +41203,21 @@ typedef unsigned int GLhandleARB;
             </require>
         </extension>
         <extension name="GL_EXT_compiled_vertex_array" supported="gl">
             <require>
                 <enum name="GL_ARRAY_ELEMENT_LOCK_FIRST_EXT"/>
                 <enum name="GL_ARRAY_ELEMENT_LOCK_COUNT_EXT"/>
                 <command name="glLockArraysEXT"/>
                 <command name="glUnlockArraysEXT"/>
             </require>
         </extension>
+        <extension name="GL_EXT_conservative_depth" supported="gles2"/>
         <extension name="GL_EXT_convolution" supported="gl">
             <require>
                 <enum name="GL_CONVOLUTION_1D_EXT"/>
                 <enum name="GL_CONVOLUTION_2D_EXT"/>
                 <enum name="GL_SEPARABLE_2D_EXT"/>
                 <enum name="GL_CONVOLUTION_BORDER_MODE_EXT"/>
                 <enum name="GL_CONVOLUTION_FILTER_SCALE_EXT"/>
                 <enum name="GL_CONVOLUTION_FILTER_BIAS_EXT"/>
                 <enum name="GL_REDUCE_EXT"/>
                 <enum name="GL_CONVOLUTION_FORMAT_EXT"/>
@@ -40514,51 +41304,51 @@ typedef unsigned int GLhandleARB;
         </extension>
         <extension name="GL_EXT_cull_vertex" supported="gl">
             <require>
                 <enum name="GL_CULL_VERTEX_EXT"/>
                 <enum name="GL_CULL_VERTEX_EYE_POSITION_EXT"/>
                 <enum name="GL_CULL_VERTEX_OBJECT_POSITION_EXT"/>
                 <command name="glCullParameterdvEXT"/>
                 <command name="glCullParameterfvEXT"/>
             </require>
         </extension>
-        <extension name="GL_EXT_debug_label" supported="gl|gles2">
+        <extension name="GL_EXT_debug_label" supported="gl|glcore|gles2">
             <require>
                 <enum name="GL_PROGRAM_PIPELINE_OBJECT_EXT"/>
                 <enum name="GL_PROGRAM_OBJECT_EXT"/>
                 <enum name="GL_SHADER_OBJECT_EXT"/>
                 <enum name="GL_BUFFER_OBJECT_EXT"/>
                 <enum name="GL_QUERY_OBJECT_EXT"/>
                 <enum name="GL_VERTEX_ARRAY_OBJECT_EXT"/>
                 <command name="glLabelObjectEXT"/>
                 <command name="glGetObjectLabelEXT"/>
             </require>
             <require comment="Depends on OpenGL ES 3.0">
                 <enum name="GL_SAMPLER"/>
                 <enum name="GL_TRANSFORM_FEEDBACK"/>
             </require>
         </extension>
-        <extension name="GL_EXT_debug_marker" supported="gl|gles2">
+        <extension name="GL_EXT_debug_marker" supported="gl|glcore|gles2">
             <require>
                 <command name="glInsertEventMarkerEXT"/>
                 <command name="glPushGroupMarkerEXT"/>
                 <command name="glPopGroupMarkerEXT"/>
             </require>
         </extension>
         <extension name="GL_EXT_depth_bounds_test" supported="gl">
             <require>
                 <enum name="GL_DEPTH_BOUNDS_TEST_EXT"/>
                 <enum name="GL_DEPTH_BOUNDS_EXT"/>
                 <command name="glDepthBoundsEXT"/>
             </require>
         </extension>
-        <extension name="GL_EXT_direct_state_access" supported="gl" comment="DSA extension doesn't identify which interfaces are core profile and keeps getting expanded. This is in sync with revision 34, 2010/09/07">
+        <extension name="GL_EXT_direct_state_access" supported="gl|glcore" comment="DSA extension doesn't identify which interfaces are core profile and keeps getting expanded. This is in sync with revision 34, 2010/09/07">
             <require>
                 <enum name="GL_PROGRAM_MATRIX_EXT"/>
                 <enum name="GL_TRANSPOSE_PROGRAM_MATRIX_EXT"/>
                 <enum name="GL_PROGRAM_MATRIX_STACK_DEPTH_EXT"/>
             </require>
             <require comment="OpenGL 1.0: New matrix commands">
                 <command name="glMatrixLoadfEXT"/>
                 <command name="glMatrixLoaddEXT"/>
                 <command name="glMatrixMultfEXT"/>
                 <command name="glMatrixMultdEXT"/>
@@ -41025,33 +41815,39 @@ typedef unsigned int GLhandleARB;
             </require>
         </extension>
         <extension name="GL_EXT_draw_elements_base_vertex" supported="gles2">
             <require>
                 <command name="glDrawElementsBaseVertexEXT"/>
                 <command name="glDrawRangeElementsBaseVertexEXT" comment="Supported only if OpenGL ES 3.0 is supported"/>
                 <command name="glDrawElementsInstancedBaseVertexEXT" comment="Supported only if OpenGL ES 3.0 is supported"/>
                 <command name="glMultiDrawElementsBaseVertexEXT" comment="Supported only if GL_EXT_multi_draw_arrays is supported"/>
             </require>
         </extension>
-        <extension name="GL_EXT_draw_instanced" supported="gl|gles2">
+        <extension name="GL_EXT_draw_instanced" supported="gl|glcore|gles2">
             <require>
                 <command name="glDrawArraysInstancedEXT"/>
                 <command name="glDrawElementsInstancedEXT"/>
             </require>
         </extension>
         <extension name="GL_EXT_draw_range_elements" supported="gl">
             <require>
                 <enum name="GL_MAX_ELEMENTS_VERTICES_EXT"/>
                 <enum name="GL_MAX_ELEMENTS_INDICES_EXT"/>
                 <command name="glDrawRangeElementsEXT"/>
             </require>
         </extension>
+        <extension name="GL_EXT_draw_transform_feedback" supported="gles2">
+            <require>
+                <command name="glDrawTransformFeedbackEXT"/>
+                <command name="glDrawTransformFeedbackInstancedEXT"/>
+            </require>
+        </extension>
         <extension name="GL_EXT_float_blend" supported="gles2"/>
         <extension name="GL_EXT_fog_coord" supported="gl">
             <require>
                 <enum name="GL_FOG_COORDINATE_SOURCE_EXT"/>
                 <enum name="GL_FOG_COORDINATE_EXT"/>
                 <enum name="GL_FRAGMENT_DEPTH_EXT"/>
                 <enum name="GL_CURRENT_FOG_COORDINATE_EXT"/>
                 <enum name="GL_FOG_COORDINATE_ARRAY_TYPE_EXT"/>
                 <enum name="GL_FOG_COORDINATE_ARRAY_STRIDE_EXT"/>
                 <enum name="GL_FOG_COORDINATE_ARRAY_POINTER_EXT"/>
@@ -41365,20 +42161,81 @@ typedef unsigned int GLhandleARB;
                 <enum name="GL_MAP_READ_BIT_EXT"/>
                 <enum name="GL_MAP_WRITE_BIT_EXT"/>
                 <enum name="GL_MAP_INVALIDATE_RANGE_BIT_EXT"/>
                 <enum name="GL_MAP_INVALIDATE_BUFFER_BIT_EXT"/>
                 <enum name="GL_MAP_FLUSH_EXPLICIT_BIT_EXT"/>
                 <enum name="GL_MAP_UNSYNCHRONIZED_BIT_EXT"/>
                 <command name="glMapBufferRangeEXT"/>
                 <command name="glFlushMappedBufferRangeEXT"/>
             </require>
         </extension>
+        <extension name="GL_EXT_memory_object" supported="gl|gles2">
+            <require>
+                <enum name="GL_TEXTURE_TILING_EXT"/>
+                <enum name="GL_DEDICATED_MEMORY_OBJECT_EXT"/>
+                <enum name="GL_PROTECTED_MEMORY_OBJECT_EXT"/>
+                <enum name="GL_NUM_TILING_TYPES_EXT"/>
+                <enum name="GL_TILING_TYPES_EXT"/>
+                <enum name="GL_OPTIMAL_TILING_EXT"/>
+                <enum name="GL_LINEAR_TILING_EXT"/>
+                <enum name="GL_NUM_DEVICE_UUIDS_EXT"/>
+                <enum name="GL_DEVICE_UUID_EXT"/>
+                <enum name="GL_DRIVER_UUID_EXT"/>
+                <enum name="GL_UUID_SIZE_EXT"/>
+                <command name="glGetUnsignedBytevEXT"/>
+                <command name="glGetUnsignedBytei_vEXT"/>
+                <command name="glDeleteMemoryObjectsEXT"/>
+                <command name="glIsMemoryObjectEXT"/>
+                <command name="glCreateMemoryObjectsEXT"/>
+                <command name="glMemoryObjectParameterivEXT"/>
+                <command name="glGetMemoryObjectParameterivEXT"/>
+                <command name="glTexStorageMem2DEXT"/>
+                <command name="glTexStorageMem2DMultisampleEXT"/>
+                <command name="glTexStorageMem3DEXT"/>
+                <command name="glTexStorageMem3DMultisampleEXT"/>
+                <command name="glBufferStorageMemEXT"/>
+            </require>
+            <require comment="Supported only if GL_EXT_direct_state_access is supported">
+                <command name="glTextureStorageMem2DEXT"/>
+                <command name="glTextureStorageMem2DMultisampleEXT"/>
+                <command name="glTextureStorageMem3DEXT"/>
+                <command name="glTextureStorageMem3DMultisampleEXT"/>
+                <command name="glNamedBufferStorageMemEXT"/>
+            </require>
+            <require api="gl">
+                <command name="glTexStorageMem1DEXT"/>
+            </require>
+            <require api="gl" comment="Supported only if GL_EXT_direct_state_access is supported">
+                <command name="glTextureStorageMem1DEXT"/>
+            </require>
+        </extension>
+        <extension name="GL_EXT_memory_object_fd" supported="gl|gles2">
+            <require>
+                <enum name="GL_HANDLE_TYPE_OPAQUE_FD_EXT"/>
+                <command name="glImportMemoryFdEXT"/>
+            </require>
+        </extension>
+        <extension name="GL_EXT_memory_object_win32" supported="gl|gles2">
+            <require>
+                <enum name="GL_HANDLE_TYPE_OPAQUE_WIN32_EXT"/>
+                <enum name="GL_HANDLE_TYPE_OPAQUE_WIN32_KMT_EXT"/>
+                <enum name="GL_DEVICE_LUID_EXT"/>
+                <enum name="GL_DEVICE_NODE_MASK_EXT"/>
+                <enum name="GL_LUID_SIZE_EXT"/>
+                <enum name="GL_HANDLE_TYPE_D3D12_TILEPOOL_EXT"/>
+                <enum name="GL_HANDLE_TYPE_D3D12_RESOURCE_EXT"/>
+                <enum name="GL_HANDLE_TYPE_D3D11_IMAGE_EXT"/>
+                <enum name="GL_HANDLE_TYPE_D3D11_IMAGE_KMT_EXT"/>
+                <command name="glImportMemoryWin32HandleEXT"/>
+                <command name="glImportMemoryWin32NameEXT"/>
+            </require>
+        </extension>
         <extension name="GL_EXT_misc_attribute" supported="gl"/>
         <extension name="GL_EXT_multi_draw_arrays" supported="gl|gles1|gles2">
             <require>
                 <command name="glMultiDrawArraysEXT"/>
                 <command name="glMultiDrawElementsEXT"/>
             </require>
         </extension>
         <extension name="GL_EXT_multi_draw_indirect" supported="gles2">
             <require>
                 <command name="glMultiDrawArraysIndirectEXT"/>
@@ -41530,27 +42387,27 @@ typedef unsigned int GLhandleARB;
             </require>
         </extension>
         <extension name="GL_EXT_polygon_offset" supported="gl">
             <require>
                 <enum name="GL_POLYGON_OFFSET_EXT"/>
                 <enum name="GL_POLYGON_OFFSET_FACTOR_EXT"/>
                 <enum name="GL_POLYGON_OFFSET_BIAS_EXT"/>
                 <command name="glPolygonOffsetEXT"/>
             </require>
         </extension>
-        <extension name="GL_EXT_polygon_offset_clamp" supported="gl|gles2">
+        <extension name="GL_EXT_polygon_offset_clamp" supported="gl|glcore|gles2">
             <require>
                 <enum name="GL_POLYGON_OFFSET_CLAMP_EXT"/>
                 <command name="glPolygonOffsetClampEXT"/>
             </require>
         </extension>
-        <extension name="GL_EXT_post_depth_coverage" supported="gl|gles2"/>
+        <extension name="GL_EXT_post_depth_coverage" supported="gl|glcore|gles2"/>
         <extension name="GL_EXT_primitive_bounding_box" supported="gles2">
             <require>
                 <enum name="GL_PRIMITIVE_BOUNDING_BOX_EXT"/>
                 <command name="glPrimitiveBoundingBoxEXT"/>
             </require>
         </extension>
         <extension name="GL_EXT_protected_textures" supported="gles2">
             <require>
                 <enum name="GL_CONTEXT_FLAG_PROTECTED_CONTENT_BIT_EXT"/>
                 <enum name="GL_TEXTURE_PROTECTED_EXT"/>
@@ -41568,21 +42425,21 @@ typedef unsigned int GLhandleARB;
         <extension name="GL_EXT_pvrtc_sRGB" supported="gles2">
             <require>
                 <enum name="GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT"/>
                 <enum name="GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT"/>
                 <enum name="GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT"/>
                 <enum name="GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT"/>
                 <enum name="GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG"/>
                 <enum name="GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG"/>
             </require>
         </extension>
-        <extension name="GL_EXT_raster_multisample" supported="gl|gles2">
+        <extension name="GL_EXT_raster_multisample" supported="gl|glcore|gles2">
             <require>
                 <enum name="GL_RASTER_MULTISAMPLE_EXT"/>
                 <enum name="GL_RASTER_SAMPLES_EXT"/>
                 <enum name="GL_MAX_RASTER_SAMPLES_EXT"/>
                 <enum name="GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT"/>
                 <enum name="GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT"/>
                 <enum name="GL_EFFECTIVE_RASTER_SAMPLES_EXT"/>
                 <command name="glRasterSamplesEXT"/>
             </require>
         </extension>
@@ -41619,20 +42476,63 @@ typedef unsigned int GLhandleARB;
                 <enum name="GL_CONTEXT_ROBUST_ACCESS_EXT"/>
                 <enum name="GL_RESET_NOTIFICATION_STRATEGY_EXT"/>
                 <enum name="GL_LOSE_CONTEXT_ON_RESET_EXT"/>
                 <enum name="GL_NO_RESET_NOTIFICATION_EXT"/>
                 <command name="glGetGraphicsResetStatusEXT"/>
                 <command name="glReadnPixelsEXT"/>
                 <command name="glGetnUniformfvEXT"/>
                 <command name="glGetnUniformivEXT"/>
             </require>
         </extension>
+        <extension name="GL_EXT_semaphore" supported="gl|gles2">
+            <require>
+                <enum name="GL_NUM_DEVICE_UUIDS_EXT"/>
+                <enum name="GL_DEVICE_UUID_EXT"/>
+                <enum name="GL_DRIVER_UUID_EXT"/>
+                <enum name="GL_UUID_SIZE_EXT"/>
+                <enum name="GL_LAYOUT_GENERAL_EXT"/>
+                <enum name="GL_LAYOUT_COLOR_ATTACHMENT_EXT"/>
+                <enum name="GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT"/>
+                <enum name="GL_LAYOUT_DEPTH_STENCIL_READ_ONLY_EXT"/>
+                <enum name="GL_LAYOUT_SHADER_READ_ONLY_EXT"/>
+                <enum name="GL_LAYOUT_TRANSFER_SRC_EXT"/>
+                <enum name="GL_LAYOUT_TRANSFER_DST_EXT"/>
+                <command name="glGetUnsignedBytevEXT"/>
+                <command name="glGetUnsignedBytei_vEXT"/>
+                <command name="glGenSemaphoresEXT"/>
+                <command name="glDeleteSemaphoresEXT"/>
+                <command name="glIsSemaphoreEXT"/>
+                <command name="glSemaphoreParameterui64vEXT"/>
+                <command name="glGetSemaphoreParameterui64vEXT"/>
+                <command name="glWaitSemaphoreEXT"/>
+                <command name="glSignalSemaphoreEXT"/>
+            </require>
+        </extension>
+        <extension name="GL_EXT_semaphore_fd" supported="gl|gles2">
+            <require>
+                <enum name="GL_HANDLE_TYPE_OPAQUE_FD_EXT"/>
+                <command name="glImportSemaphoreFdEXT"/>
+            </require>
+        </extension>
+        <extension name="GL_EXT_semaphore_win32" supported="gl|gles2">
+            <require>
+                <enum name="GL_HANDLE_TYPE_OPAQUE_WIN32_EXT"/>
+                <enum name="GL_HANDLE_TYPE_OPAQUE_WIN32_KMT_EXT"/>
+                <enum name="GL_DEVICE_LUID_EXT"/>
+                <enum name="GL_DEVICE_NODE_MASK_EXT"/>
+                <enum name="GL_LUID_SIZE_EXT"/>
+                <enum name="GL_HANDLE_TYPE_D3D12_FENCE_EXT"/>
+                <enum name="GL_D3D12_FENCE_VALUE_EXT"/>
+                <command name="glImportSemaphoreWin32HandleEXT"/>
+                <command name="glImportSemaphoreWin32NameEXT"/>
+            </require>
+        </extension>
         <extension name="GL_EXT_sRGB" supported="gles1|gles2">
             <require>
                 <enum name="GL_SRGB_EXT"/>
                 <enum name="GL_SRGB_ALPHA_EXT"/>
                 <enum name="GL_SRGB8_ALPHA8_EXT"/>
                 <enum name="GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT"/>
             </require>
         </extension>
         <extension name="GL_EXT_sRGB_write_control" supported="gles2">
             <require>
@@ -41660,21 +42560,21 @@ typedef unsigned int GLhandleARB;
                 <command name="glSecondaryColor3svEXT"/>
                 <command name="glSecondaryColor3ubEXT"/>
                 <command name="glSecondaryColor3ubvEXT"/>
                 <command name="glSecondaryColor3uiEXT"/>
                 <command name="glSecondaryColor3uivEXT"/>
                 <command name="glSecondaryColor3usEXT"/>
                 <command name="glSecondaryColor3usvEXT"/>
                 <command name="glSecondaryColorPointerEXT"/>
             </require>
         </extension>
-        <extension name="GL_EXT_separate_shader_objects" supported="gl|gles2">
+        <extension name="GL_EXT_separate_shader_objects" supported="gl|glcore|gles2">
             <require api="gl" comment="The OpenGL version of this extension is completely unrelated to the OpenGL ES version">
                 <enum name="GL_ACTIVE_PROGRAM_EXT"/>
                 <command name="glUseShaderProgramEXT"/>
                 <command name="glActiveProgramEXT"/>
                 <command name="glCreateShaderProgramEXT"/>
             </require>
             <require api="gles2" comment="The OpenGL ES version of this extension is completely unrelated to the OpenGL version">
                 <enum name="GL_VERTEX_SHADER_BIT_EXT"/>
                 <enum name="GL_FRAGMENT_SHADER_BIT_EXT"/>
                 <enum name="GL_ALL_SHADER_BITS_EXT"/>
@@ -41799,21 +42699,21 @@ typedef unsigned int GLhandleARB;
                 <enum name="GL_BUFFER_UPDATE_BARRIER_BIT_EXT"/>
                 <enum name="GL_FRAMEBUFFER_BARRIER_BIT_EXT"/>
                 <enum name="GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT"/>
                 <enum name="GL_ATOMIC_COUNTER_BARRIER_BIT_EXT"/>
                 <enum name="GL_ALL_BARRIER_BITS_EXT"/>
                 <command name="glBindImageTextureEXT"/>
                 <command name="glMemoryBarrierEXT"/>
             </require>
         </extension>
         <extension name="GL_EXT_shader_implicit_conversions" supported="gles2"/>
-        <extension name="GL_EXT_shader_integer_mix" supported="gl|gles2"/>
+        <extension name="GL_EXT_shader_integer_mix" supported="gl|glcore|gles2"/>
         <extension name="GL_EXT_shader_io_blocks" supported="gles2"/>
         <extension name="GL_EXT_shader_non_constant_global_initializers" supported="gles2"/>
         <extension name="GL_EXT_shader_pixel_local_storage" supported="gles2">
             <require>
                 <enum name="GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT"/>
                 <enum name="GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT"/>
                 <enum name="GL_SHADER_PIXEL_LOCAL_STORAGE_EXT"/>
             </require>
         </extension>
         <extension name="GL_EXT_shader_pixel_local_storage2" supported="gles2">
@@ -41856,21 +42756,21 @@ typedef unsigned int GLhandleARB;
                 <enum name="GL_TEXTURE_CUBE_MAP_ARRAY_OES"/>
                 <enum name="GL_TEXTURE_3D"/>
                 <enum name="GL_MAX_SPARSE_TEXTURE_SIZE_EXT"/>
                 <enum name="GL_MAX_SPARSE_3D_TEXTURE_SIZE_EXT"/>
                 <enum name="GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_EXT"/>
                 <enum name="GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_EXT"/>
                 <command name="glTexPageCommitmentEXT"/>
                 <!-- <command name="glTexturePageCommitmentEXT"/> -->
             </require>
         </extension>
-        <extension name="GL_EXT_sparse_texture2" supported="gl"/>
+        <extension name="GL_EXT_sparse_texture2" supported="gl|gles2"/>
         <extension name="GL_EXT_stencil_clear_tag" supported="gl">
             <require>
                 <enum name="GL_STENCIL_TAG_BITS_EXT"/>
                 <enum name="GL_STENCIL_CLEAR_TAG_VALUE_EXT"/>
                 <command name="glStencilClearTagEXT"/>
             </require>
         </extension>
         <extension name="GL_EXT_stencil_two_side" supported="gl">
             <require>
                 <enum name="GL_STENCIL_TEST_TWO_SIDE_EXT"/>
@@ -42056,20 +42956,25 @@ typedef unsigned int GLhandleARB;
         <extension name="GL_EXT_texture_buffer_object" supported="gl">
             <require>
                 <enum name="GL_TEXTURE_BUFFER_EXT"/>
                 <enum name="GL_MAX_TEXTURE_BUFFER_SIZE_EXT"/>
                 <enum name="GL_TEXTURE_BINDING_BUFFER_EXT"/>
                 <enum name="GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT"/>
                 <enum name="GL_TEXTURE_BUFFER_FORMAT_EXT"/>
                 <command name="glTexBufferEXT"/>
             </require>
         </extension>
+        <extension name="GL_EXT_texture_compression_astc_decode_mode" supported="gles2">
+            <require>
+                <enum name="GL_TEXTURE_ASTC_DECODE_PRECISION_EXT"/>
+            </require>
+        </extension>
         <extension name="GL_EXT_texture_compression_dxt1" supported="gles1|gles2">
             <require>
                 <enum name="GL_COMPRESSED_RGB_S3TC_DXT1_EXT"/>
                 <enum name="GL_COMPRESSED_RGBA_S3TC_DXT1_EXT"/>
             </require>
         </extension>
         <extension name="GL_EXT_texture_compression_latc" supported="gl">
             <require>
                 <enum name="GL_COMPRESSED_LUMINANCE_LATC1_EXT"/>
                 <enum name="GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT"/>
@@ -42078,21 +42983,21 @@ typedef unsigned int GLhandleARB;
             </require>
         </extension>
         <extension name="GL_EXT_texture_compression_rgtc" supported="gl">
             <require>
                 <enum name="GL_COMPRESSED_RED_RGTC1_EXT"/>
                 <enum name="GL_COMPRESSED_SIGNED_RED_RGTC1_EXT"/>
                 <enum name="GL_COMPRESSED_RED_GREEN_RGTC2_EXT"/>
                 <enum name="GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT"/>
             </require>
         </extension>
-        <extension name="GL_EXT_texture_compression_s3tc" supported="gl|gles2|glsc2">
+        <extension name="GL_EXT_texture_compression_s3tc" supported="gl|glcore|gles2|glsc2">
             <require>
                 <enum name="GL_COMPRESSED_RGB_S3TC_DXT1_EXT"/>
                 <enum name="GL_COMPRESSED_RGBA_S3TC_DXT1_EXT"/>
                 <enum name="GL_COMPRESSED_RGBA_S3TC_DXT3_EXT"/>
                 <enum name="GL_COMPRESSED_RGBA_S3TC_DXT5_EXT"/>
             </require>
         </extension>
         <extension name="GL_EXT_texture_cube_map" supported="gl" comment="Replaced by ARB_texture_cube_map, but was apparently shipped anyway?">
             <require>
                 <enum name="GL_NORMAL_MAP_EXT"/>
@@ -42153,21 +43058,21 @@ typedef unsigned int GLhandleARB;
                 <enum name="GL_DOT3_RGB_EXT"/>
                 <enum name="GL_DOT3_RGBA_EXT"/>
             </require>
         </extension>
         <extension name="GL_EXT_texture_filter_anisotropic" supported="gl|gles1|gles2">
             <require>
                 <enum name="GL_TEXTURE_MAX_ANISOTROPY_EXT"/>
                 <enum name="GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT"/>
             </require>
         </extension>
-        <extension name="GL_EXT_texture_filter_minmax" supported="gl|gles2">
+        <extension name="GL_EXT_texture_filter_minmax" supported="gl|glcore|gles2">
             <require>
                 <enum name="GL_RASTER_MULTISAMPLE_EXT"/>
                 <enum name="GL_RASTER_SAMPLES_EXT"/>
                 <enum name="GL_MAX_RASTER_SAMPLES_EXT"/>
                 <enum name="GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT"/>
                 <enum name="GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT"/>
                 <enum name="GL_EFFECTIVE_RASTER_SAMPLES_EXT"/>
                 <command name="glRasterSamplesEXT"/>
             </require>
         </extension>
@@ -42312,21 +43217,21 @@ typedef unsigned int GLhandleARB;
         <extension name="GL_EXT_texture_sRGB_R8" supported="gles2">
             <require>
                 <enum name="GL_SR8_EXT"/>
             </require>
         </extension>
         <extension name="GL_EXT_texture_sRGB_RG8" supported="gles2">
             <require>
                 <enum name="GL_SRG8_EXT"/>
             </require>
         </extension>
-        <extension name="GL_EXT_texture_sRGB_decode" supported="gl|gles2">
+        <extension name="GL_EXT_texture_sRGB_decode" supported="gl|glcore|gles2">
             <require>
                 <enum name="GL_TEXTURE_SRGB_DECODE_EXT"/>
                 <enum name="GL_DECODE_EXT"/>
                 <enum name="GL_SKIP_DECODE_EXT"/>
             </require>
         </extension>
         <extension name="GL_EXT_texture_shared_exponent" supported="gl">
             <require>
                 <enum name="GL_RGB9_E5_EXT"/>
                 <enum name="GL_UNSIGNED_INT_5_9_9_9_REV_EXT"/>
@@ -42707,21 +43612,27 @@ typedef unsigned int GLhandleARB;
                 <enum name="GL_VERTEX_WEIGHT_ARRAY_EXT"/>
                 <enum name="GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT"/>
                 <enum name="GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT"/>
                 <enum name="GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT"/>
                 <enum name="GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT"/>
                 <command name="glVertexWeightfEXT"/>
                 <command name="glVertexWeightfvEXT"/>
                 <command name="glVertexWeightPointerEXT"/>
             </require>
         </extension>
-        <extension name="GL_EXT_window_rectangles" supported="gl|gles2">
+        <extension name="GL_EXT_win32_keyed_mutex" supported="gl|gles2">
+            <require>
+                <command name="glAcquireKeyedMutexWin32EXT"/>
+                <command name="glReleaseKeyedMutexWin32EXT"/>
+            </require>
+        </extension>
+        <extension name="GL_EXT_window_rectangles" supported="gl|glcore|gles2">
             <require>
                 <enum name="GL_INCLUSIVE_EXT"/>
                 <enum name="GL_EXCLUSIVE_EXT"/>
                 <enum name="GL_WINDOW_RECTANGLE_EXT"/>
                 <enum name="GL_WINDOW_RECTANGLE_MODE_EXT"/>
                 <enum name="GL_MAX_WINDOW_RECTANGLES_EXT"/>
                 <enum name="GL_NUM_WINDOW_RECTANGLES_EXT"/>
                 <command name="glWindowRectanglesEXT"/>
             </require>
         </extension>
@@ -42841,20 +43752,30 @@ typedef unsigned int GLhandleARB;
                 <command name="glColorPointerListIBM"/>
                 <command name="glSecondaryColorPointerListIBM"/>
                 <command name="glEdgeFlagPointerListIBM"/>
                 <command name="glFogCoordPointerListIBM"/>
                 <command name="glIndexPointerListIBM"/>
                 <command name="glNormalPointerListIBM"/>
                 <command name="glTexCoordPointerListIBM"/>
                 <command name="glVertexPointerListIBM"/>
             </require>
         </extension>
+        <extension name="GL_IMG_bindless_texture" supported="gles2">
+            <require>
+                <command name="glGetTextureHandleIMG"/>
+                <command name="glGetTextureSamplerHandleIMG"/>
+                <command name="glUniformHandleui64IMG"/>
+                <command name="glUniformHandleui64vIMG"/>
+                <command name="glProgramUniformHandleui64IMG"/>
+                <command name="glProgramUniformHandleui64vIMG"/>
+            </require>
+        </extension>
         <extension name="GL_IMG_framebuffer_downsample" supported="gles2">
             <require>
                 <enum name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_AND_DOWNSAMPLE_IMG"/>
                 <enum name="GL_NUM_DOWNSAMPLE_SCALES_IMG"/>
                 <enum name="GL_DOWNSAMPLE_SCALES_IMG"/>
                 <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SCALE_IMG"/>
                 <command name="glFramebufferTexture2DDownsampleIMG"/>
                 <command name="glFramebufferTextureLayerDownsampleIMG"/>
             </require>
         </extension>
@@ -42944,27 +43865,27 @@ typedef unsigned int GLhandleARB;
                 <enum name="GL_GREEN_MAX_CLAMP_INGR"/>
                 <enum name="GL_BLUE_MAX_CLAMP_INGR"/>
                 <enum name="GL_ALPHA_MAX_CLAMP_INGR"/>
             </require>
         </extension>
         <extension name="GL_INGR_interlace_read" supported="gl">
             <require>
                 <enum name="GL_INTERLACE_READ_INGR"/>
             </require>
         </extension>
-        <extension name="GL_INTEL_conservative_rasterization" supported="gl|gles2">
+        <extension name="GL_INTEL_conservative_rasterization" supported="gl|glcore|gles2">
             <require>
                 <enum name="GL_CONSERVATIVE_RASTERIZATION_INTEL"/>
             </require>
         </extension>
         <extension name="GL_INTEL_fragment_shader_ordering" supported="gl"/>
-        <extension name="GL_INTEL_framebuffer_CMAA" supported="gl|gles2">
+        <extension name="GL_INTEL_framebuffer_CMAA" supported="gl|glcore|gles2">
             <require>
                 <command name="glApplyFramebufferAttachmentCMAAINTEL"/>
             </require>
         </extension>
         <extension name="GL_INTEL_map_texture" supported="gl">
             <require>
                 <enum name="GL_TEXTURE_MEMORY_LAYOUT_INTEL"/>
                 <enum name="GL_LAYOUT_DEFAULT_INTEL"/>
                 <enum name="GL_LAYOUT_LINEAR_INTEL"/>
                 <enum name="GL_LAYOUT_LINEAR_CPU_CACHED_INTEL"/>
@@ -42979,21 +43900,21 @@ typedef unsigned int GLhandleARB;
                 <enum name="GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL"/>
                 <enum name="GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL"/>
                 <enum name="GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL"/>
                 <enum name="GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL"/>
                 <command name="glVertexPointervINTEL"/>
                 <command name="glNormalPointervINTEL"/>
                 <command name="glColorPointervINTEL"/>
                 <command name="glTexCoordPointervINTEL"/>
             </require>
         </extension>
-        <extension name="GL_INTEL_performance_query" supported="gl|gles2">
+        <extension name="GL_INTEL_performance_query" supported="gl|glcore|gles2">
             <require>
                 <enum name="GL_PERFQUERY_SINGLE_CONTEXT_INTEL"/>
                 <enum name="GL_PERFQUERY_GLOBAL_CONTEXT_INTEL"/>
                 <enum name="GL_PERFQUERY_WAIT_INTEL"/>
                 <enum name="GL_PERFQUERY_FLUSH_INTEL"/>
                 <enum name="GL_PERFQUERY_DONOT_FLUSH_INTEL"/>
                 <enum name="GL_PERFQUERY_COUNTER_EVENT_INTEL"/>
                 <enum name="GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL"/>
                 <enum name="GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL"/>
                 <enum name="GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL"/>
@@ -43013,41 +43934,41 @@ typedef unsigned int GLhandleARB;
                 <command name="glDeletePerfQueryINTEL"/>
                 <command name="glEndPerfQueryINTEL"/>
                 <command name="glGetFirstPerfQueryIdINTEL"/>
                 <command name="glGetNextPerfQueryIdINTEL"/>
                 <command name="glGetPerfCounterInfoINTEL"/>
                 <command name="glGetPerfQueryDataINTEL"/>
                 <command name="glGetPerfQueryIdByNameINTEL"/>
                 <command name="glGetPerfQueryInfoINTEL"/>
             </require>
         </extension>
-        <extension name="GL_KHR_blend_equation_advanced" supported="gl|gles2">
+        <extension name="GL_KHR_blend_equation_advanced" supported="gl|glcore|gles2">
             <require>
                 <enum name="GL_MULTIPLY_KHR"/>
                 <enum name="GL_SCREEN_KHR"/>
                 <enum name="GL_OVERLAY_KHR"/>
                 <enum name="GL_DARKEN_KHR"/>
                 <enum name="GL_LIGHTEN_KHR"/>
                 <enum name="GL_COLORDODGE_KHR"/>
                 <enum name="GL_COLORBURN_KHR"/>
                 <enum name="GL_HARDLIGHT_KHR"/>
                 <enum name="GL_SOFTLIGHT_KHR"/>
                 <enum name="GL_DIFFERENCE_KHR"/>
                 <enum name="GL_EXCLUSION_KHR"/>
                 <enum name="GL_HSL_HUE_KHR"/>
                 <enum name="GL_HSL_SATURATION_KHR"/>
                 <enum name="GL_HSL_COLOR_KHR"/>
                 <enum name="GL_HSL_LUMINOSITY_KHR"/>
                 <command name="glBlendBarrierKHR"/>
             </require>
         </extension>
-        <extension name="GL_KHR_blend_equation_advanced_coherent" supported="gl|gles2">
+        <extension name="GL_KHR_blend_equation_advanced_coherent" supported="gl|glcore|gles2">
             <require comment="Otherwise identical to GL_KHR_blend_equation_advanced, just different semantic behavior">
                 <enum name="GL_BLEND_ADVANCED_COHERENT_KHR"/>
             </require>
         </extension>
         <extension name="GL_KHR_context_flush_control" supported="gl|glcore|gles2">
             <require api="gl" comment="KHR extensions *mandate* suffixes for ES, unlike for GL">
                 <enum name="GL_CONTEXT_RELEASE_BEHAVIOR"/>
                 <enum name="GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH"/>
                 <enum name="GL_NONE"/>
             </require>
@@ -43286,20 +44207,21 @@ typedef unsigned int GLhandleARB;
         <extension name="GL_MESA_pack_invert" supported="gl">
             <require>
                 <enum name="GL_PACK_INVERT_MESA"/>
             </require>
         </extension>
         <extension name="GL_MESA_resize_buffers" supported="gl">
             <require>
                 <command name="glResizeBuffersMESA"/>
             </require>
         </extension>
+        <extension name="GL_MESA_shader_integer_functions" supported="gl|gles2"/>
         <extension name="GL_MESA_window_pos" supported="gl">
             <require>
                 <command name="glWindowPos2dMESA"/>
                 <command name="glWindowPos2dvMESA"/>
                 <command name="glWindowPos2fMESA"/>
                 <command name="glWindowPos2fvMESA"/>
                 <command name="glWindowPos2iMESA"/>
                 <command name="glWindowPos2ivMESA"/>
                 <command name="glWindowPos2sMESA"/>
                 <command name="glWindowPos2svMESA"/>
@@ -43321,65 +44243,84 @@ typedef unsigned int GLhandleARB;
                 <command name="glWindowPos4svMESA"/>
             </require>
         </extension>
         <extension name="GL_MESA_ycbcr_texture" supported="gl">
             <require>
                 <enum name="GL_UNSIGNED_SHORT_8_8_MESA"/>
                 <enum name="GL_UNSIGNED_SHORT_8_8_REV_MESA"/>
                 <enum name="GL_YCBCR_MESA"/>
             </require>
         </extension>
+        <extension name="GL_NVX_blend_equation_advanced_multi_draw_buffers" supported="gl|gles2"/>
         <extension name="GL_NVX_conditional_render" supported="gl">
             <require>
                 <command name="glBeginConditionalRenderNVX"/>
                 <command name="glEndConditionalRenderNVX"/>
             </require>
         </extension>
         <extension name="GL_NVX_gpu_memory_info" supported="gl">
             <require>
                 <enum name="GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX"/>
                 <enum name="GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX"/>
                 <enum name="GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX"/>
                 <enum name="GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX"/>
                 <enum name="GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX"/>
             </require>
         </extension>
-        <extension name="GL_NV_bindless_multi_draw_indirect" supported="gl">
+        <extension name="GL_NVX_linked_gpu_multicast" supported="gl">
+            <require>
+                <enum name="GL_LGPU_SEPARATE_STORAGE_BIT_NVX"/>
+                <enum name="GL_MAX_LGPU_GPUS_NVX"/>
+                <command name="glLGPUNamedBufferSubDataNVX"/>
+                <command name="glLGPUCopyImageSubDataNVX"/>
+                <command name="glLGPUInterlockNVX"/>
+            </require>
+        </extension>
+        <extension name="GL_NV_alpha_to_coverage_dither_control" supported="gl">
+            <require>
+                <enum name="GL_ALPHA_TO_COVERAGE_DITHER_DEFAULT_NV"/>
+                <enum name="GL_ALPHA_TO_COVERAGE_DITHER_ENABLE_NV"/>
+                <enum name="GL_ALPHA_TO_COVERAGE_DITHER_DISABLE_NV"/>
+                <enum name="GL_ALPHA_TO_COVERAGE_DITHER_MODE_NV"/>
+                <command name="glAlphaToCoverageDitherControlNV"/>
+            </require>
+        </extension>
+        <extension name="GL_NV_bindless_multi_draw_indirect" supported="gl|glcore">
             <require>
                 <command name="glMultiDrawArraysIndirectBindlessNV"/>
                 <command name="glMultiDrawElementsIndirectBindlessNV"/>
             </require>
         </extension>
-        <extension name="GL_NV_bindless_multi_draw_indirect_count" supported="gl">
+        <extension name="GL_NV_bindless_multi_draw_indirect_count" supported="gl|glcore">
             <require>
                 <command name="glMultiDrawArraysIndirectBindlessCountNV"/>
                 <command name="glMultiDrawElementsIndirectBindlessCountNV"/>
             </require>
         </extension>
-        <extension name="GL_NV_bindless_texture" supported="gl|gles2">
+        <extension name="GL_NV_bindless_texture" supported="gl|glcore|gles2">
             <require>
                 <command name="glGetTextureHandleNV"/>
                 <command name="glGetTextureSamplerHandleNV"/>
                 <command name="glMakeTextureHandleResidentNV"/>
                 <command name="glMakeTextureHandleNonResidentNV"/>
                 <command name="glGetImageHandleNV"/>
                 <command name="glMakeImageHandleResidentNV"/>
                 <command name="glMakeImageHandleNonResidentNV"/>
                 <command name="glUniformHandleui64NV"/>
                 <command name="glUniformHandleui64vNV"/>
                 <command name="glProgramUniformHandleui64NV"/>
                 <command name="glProgramUniformHandleui64vNV"/>
                 <command name="glIsTextureHandleResidentNV"/>
                 <command name="glIsImageHandleResidentNV"/>
             </require>
         </extension>
-        <extension name="GL_NV_blend_equation_advanced" supported="gl|gles2">
+        <extension name="GL_NV_blend_equation_advanced" supported="gl|glcore|gles2">
             <require>
                 <enum name="GL_BLEND_OVERLAP_NV"/>
                 <enum name="GL_BLEND_PREMULTIPLIED_SRC_NV"/>
                 <enum name="GL_BLUE_NV"/>
                 <enum name="GL_COLORBURN_NV"/>
                 <enum name="GL_COLORDODGE_NV"/>
                 <enum name="GL_CONJOINT_NV"/>
                 <enum name="GL_CONTRAST_NV"/>
                 <enum name="GL_DARKEN_NV"/>
                 <enum name="GL_DIFFERENCE_NV"/>
@@ -43422,35 +44363,35 @@ typedef unsigned int GLhandleARB;
                 <enum name="GL_SRC_OUT_NV"/>
                 <enum name="GL_SRC_OVER_NV"/>
                 <enum name="GL_UNCORRELATED_NV"/>
                 <enum name="GL_VIVIDLIGHT_NV"/>
                 <enum name="GL_XOR_NV"/>
                 <enum name="GL_ZERO"/>
                 <command name="glBlendParameteriNV"/>
                 <command name="glBlendBarrierNV"/>
             </require>
         </extension>
-        <extension name="GL_NV_blend_equation_advanced_coherent" supported="gl|gles2">
+        <extension name="GL_NV_blend_equation_advanced_coherent" supported="gl|glcore|gles2">
             <require comment="Otherwise identical to GL_NV_blend_equation_advanced, just different semantic behavior">
                 <enum name="GL_BLEND_ADVANCED_COHERENT_NV"/>
             </require>
         </extension>
         <extension name="GL_NV_blend_square" supported="gl"/>
-        <extension name="GL_NV_clip_space_w_scaling" supported="gl">
+        <extension name="GL_NV_clip_space_w_scaling" supported="gl|glcore">
             <require>
                 <enum name="GL_VIEWPORT_POSITION_W_SCALE_NV"/>
                 <enum name="GL_VIEWPORT_POSITION_W_SCALE_X_COEFF_NV"/>
                 <enum name="GL_VIEWPORT_POSITION_W_SCALE_Y_COEFF_NV"/>
                 <command name="glViewportPositionWScaleNV"/>
             </require>
         </extension>
-        <extension name="GL_NV_command_list" supported="gl">
+        <extension name="GL_NV_command_list" supported="gl|glcore">
             <require>
                 <enum name="GL_TERMINATE_SEQUENCE_COMMAND_NV"/>
                 <enum name="GL_NOP_COMMAND_NV"/>
                 <enum name="GL_DRAW_ELEMENTS_COMMAND_NV"/>
                 <enum name="GL_DRAW_ARRAYS_COMMAND_NV"/>
                 <enum name="GL_DRAW_ELEMENTS_STRIP_COMMAND_NV"/>
                 <enum name="GL_DRAW_ARRAYS_STRIP_COMMAND_NV"/>
                 <enum name="GL_DRAW_ELEMENTS_INSTANCED_COMMAND_NV"/>
                 <enum name="GL_DRAW_ARRAYS_INSTANCED_COMMAND_NV"/>
                 <enum name="GL_ELEMENT_ADDRESS_COMMAND_NV"/>
@@ -43482,48 +44423,48 @@ typedef unsigned int GLhandleARB;
                 <command name="glCompileCommandListNV"/>
                 <command name="glCallCommandListNV"/>
             </require>
         </extension>
         <extension name="GL_NV_compute_program5" supported="gl">
             <require>
                 <enum name="GL_COMPUTE_PROGRAM_NV"/>
                 <enum name="GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV"/>
             </require>
         </extension>
-        <extension name="GL_NV_conditional_render" supported="gl|gles2">
+        <extension name="GL_NV_conditional_render" supported="gl|glcore|gles2">
             <require>
                 <enum name="GL_QUERY_WAIT_NV"/>
                 <enum name="GL_QUERY_NO_WAIT_NV"/>
                 <enum name="GL_QUERY_BY_REGION_WAIT_NV"/>
                 <enum name="GL_QUERY_BY_REGION_NO_WAIT_NV"/>
                 <command name="glBeginConditionalRenderNV"/>
                 <command name="glEndConditionalRenderNV"/>
             </require>
         </extension>
-        <extension name="GL_NV_conservative_raster" supported="gl|gles2">
+        <extension name="GL_NV_conservative_raster" supported="gl|glcore|gles2">
             <require>
                 <enum name="GL_CONSERVATIVE_RASTERIZATION_NV"/>
                 <enum name="GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV"/>
                 <enum name="GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV"/>
                 <enum name="GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV"/>
                 <command name="glSubpixelPrecisionBiasNV"/>
             </require>
         </extension>
-        <extension name="GL_NV_conservative_raster_dilate" supported="gl">
+        <extension name="GL_NV_conservative_raster_dilate" supported="gl|glcore">
             <require>
                 <enum name="GL_CONSERVATIVE_RASTER_DILATE_NV"/>
                 <enum name="GL_CONSERVATIVE_RASTER_DILATE_RANGE_NV"/>
                 <enum name="GL_CONSERVATIVE_RASTER_DILATE_GRANULARITY_NV"/>
                 <command name="glConservativeRasterParameterfNV"/>
             </require>
         </extension>
-        <extension name="GL_NV_conservative_raster_pre_snap_triangles" supported="gl|gles2">
+        <extension name="GL_NV_conservative_raster_pre_snap_triangles" supported="gl|glcore|gles2">
             <require>
                 <enum name="GL_CONSERVATIVE_RASTER_MODE_NV"/>
                 <enum name="GL_CONSERVATIVE_RASTER_MODE_POST_SNAP_NV"/>
                 <enum name="GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_TRIANGLES_NV"/>
                 <enum name="GL_CONSERVATIVE_RASTER_MODE_NV"/>
                 <command name="glConservativeRasterParameteriNV"/>
             </require>
         </extension>
         <extension name="GL_NV_copy_buffer" supported="gles2">
             <require>
@@ -43627,20 +44568,29 @@ typedef unsigned int GLhandleARB;
             <require>
                 <command name="glDrawArraysInstancedNV"/>
                 <command name="glDrawElementsInstancedNV"/>
             </require>
         </extension>
         <extension name="GL_NV_draw_texture" supported="gl">
             <require>
                 <command name="glDrawTextureNV"/>
             </require>
         </extension>
+        <extension name="GL_NV_draw_vulkan_image" supported="gl|glcore|gles2">
+            <require>
+                <command name="glDrawVkImageNV"/>
+                <command name="glGetVkProcAddrNV"/>
+                <command name="glWaitVkSemaphoreNV"/>
+                <command name="glSignalVkSemaphoreNV"/>
+                <command name="glSignalVkFenceNV"/>
+            </require>
+        </extension>
         <extension name="GL_NV_evaluators" supported="gl">
             <require>
                 <enum name="GL_EVAL_2D_NV"/>
                 <enum name="GL_EVAL_TRIANGULAR_2D_NV"/>
                 <enum name="GL_MAP_TESSELLATION_NV"/>
                 <enum name="GL_MAP_ATTRIB_U_ORDER_NV"/>
                 <enum name="GL_MAP_ATTRIB_V_ORDER_NV"/>
                 <enum name="GL_EVAL_FRACTIONAL_TESSELLATION_NV"/>
                 <enum name="GL_EVAL_VERTEX_ATTRIB0_NV"/>
                 <enum name="GL_EVAL_VERTEX_ATTRIB1_NV"/>
@@ -43717,21 +44667,21 @@ typedef unsigned int GLhandleARB;
                 <enum name="GL_FENCE_CONDITION_NV"/>
                 <command name="glDeleteFencesNV"/>
                 <command name="glGenFencesNV"/>
                 <command name="glIsFenceNV"/>
                 <command name="glTestFenceNV"/>
                 <command name="glGetFenceivNV"/>
                 <command name="glFinishFenceNV"/>
                 <command name="glSetFenceNV"/>
             </require>
         </extension>
-        <extension name="GL_NV_fill_rectangle" supported="gl|gles2">
+        <extension name="GL_NV_fill_rectangle" supported="gl|glcore|gles2">
             <require>
                 <enum name="GL_FILL_RECTANGLE_NV"/>
             </require>
         </extension>
         <extension name="GL_NV_float_buffer" supported="gl">
             <require>
                 <enum name="GL_FLOAT_R_NV"/>
                 <enum name="GL_FLOAT_RG_NV"/>
                 <enum name="GL_FLOAT_RGB_NV"/>
                 <enum name="GL_FLOAT_RGBA_NV"/>
@@ -43749,21 +44699,21 @@ typedef unsigned int GLhandleARB;
             </require>
         </extension>
         <extension name="GL_NV_fog_distance" supported="gl">
             <require>
                 <enum name="GL_FOG_DISTANCE_MODE_NV"/>
                 <enum name="GL_EYE_RADIAL_NV"/>
                 <enum name="GL_EYE_PLANE_ABSOLUTE_NV"/>
                 <enum name="GL_EYE_PLANE"/>
             </require>
         </extension>
-        <extension name="GL_NV_fragment_coverage_to_color" supported="gl|gles2">
+        <extension name="GL_NV_fragment_coverage_to_color" supported="gl|glcore|gles2">
             <require>
                 <enum name="GL_FRAGMENT_COVERAGE_TO_COLOR_NV"/>
                 <enum name="GL_FRAGMENT_COVERAGE_COLOR_NV"/>
                 <command name="glFragmentCoverageColorNV"/>
             </require>
         </extension>
         <extension name="GL_NV_fragment_program" supported="gl">
             <require>
                 <enum name="GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV"/>
                 <enum name="GL_FRAGMENT_PROGRAM_NV"/>
@@ -43785,31 +44735,31 @@ typedef unsigned int GLhandleARB;
             <require>
                 <enum name="GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV"/>
                 <enum name="GL_MAX_PROGRAM_CALL_DEPTH_NV"/>
                 <enum name="GL_MAX_PROGRAM_IF_DEPTH_NV"/>
                 <enum name="GL_MAX_PROGRAM_LOOP_DEPTH_NV"/>
                 <enum name="GL_MAX_PROGRAM_LOOP_COUNT_NV"/>
             </require>
         </extension>
         <extension name="GL_NV_fragment_program4" supported="gl"/>
         <extension name="GL_NV_fragment_program_option" supported="gl"/>
-        <extension name="GL_NV_fragment_shader_interlock" supported="gl|gles2"/>
+        <extension name="GL_NV_fragment_shader_interlock" supported="gl|glcore|gles2"/>
         <extension name="GL_NV_framebuffer_blit" supported="gles2">
             <require>
                 <enum name="GL_READ_FRAMEBUFFER_NV"/>
                 <enum name="GL_DRAW_FRAMEBUFFER_NV"/>
                 <enum name="GL_DRAW_FRAMEBUFFER_BINDING_NV"/>
                 <enum name="GL_READ_FRAMEBUFFER_BINDING_NV"/>
                 <command name="glBlitFramebufferNV"/>
             </require>
         </extension>
-        <extension name="GL_NV_framebuffer_mixed_samples" supported="gl|gles2">
+        <extension name="GL_NV_framebuffer_mixed_samples" supported="gl|glcore|gles2">
             <require>
                 <enum name="GL_RASTER_MULTISAMPLE_EXT"/>
                 <enum name="GL_COVERAGE_MODULATION_TABLE_NV"/>
                 <enum name="GL_RASTER_SAMPLES_EXT"/>
                 <enum name="GL_MAX_RASTER_SAMPLES_EXT"/>
                 <enum name="GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT"/>
                 <enum name="GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT"/>
                 <enum name="GL_EFFECTIVE_RASTER_SAMPLES_EXT"/>
                 <enum name="GL_COLOR_SAMPLES_NV"/>
                 <enum name="GL_DEPTH_SAMPLES_NV"/>
@@ -43825,21 +44775,21 @@ typedef unsigned int GLhandleARB;
             </require>
         </extension>
         <extension name="GL_NV_framebuffer_multisample" supported="gles2">
             <require>
                 <enum name="GL_RENDERBUFFER_SAMPLES_NV"/>
                 <enum name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV"/>
                 <enum name="GL_MAX_SAMPLES_NV"/>
                 <command name="glRenderbufferStorageMultisampleNV"/>
             </require>
         </extension>
-        <extension name="GL_NV_framebuffer_multisample_coverage" supported="gl">
+        <extension name="GL_NV_framebuffer_multisample_coverage" supported="gl|glcore">
             <require>
                 <enum name="GL_RENDERBUFFER_COVERAGE_SAMPLES_NV"/>
                 <enum name="GL_RENDERBUFFER_COLOR_SAMPLES_NV"/>
                 <enum name="GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV"/>
                 <enum name="GL_MULTISAMPLE_COVERAGE_MODES_NV"/>
                 <command name="glRenderbufferStorageMultisampleCoverageNV"/>
             </require>
         </extension>
         <extension name="GL_NV_generate_mipmap_sRGB" supported="gles2"/>
         <extension name="GL_NV_geometry_program4" supported="gl">
@@ -43860,21 +44810,21 @@ typedef unsigned int GLhandleARB;
                 <enum name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT"/>
                 <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT"/>
                 <enum name="GL_PROGRAM_POINT_SIZE_EXT"/>
                 <command name="glProgramVertexLimitNV"/>
                 <command name="glFramebufferTextureEXT"/>
                 <command name="glFramebufferTextureLayerEXT"/>
                 <command name="glFramebufferTextureFaceEXT"/>
             </require>
         </extension>
         <extension name="GL_NV_geometry_shader4" supported="gl"/>
-        <extension name="GL_NV_geometry_shader_passthrough" supported="gl|gles2"/>
+        <extension name="GL_NV_geometry_shader_passthrough" supported="gl|glcore|gles2"/>
         <extension name="GL_NV_gpu_program4" supported="gl">
             <require>
                 <enum name="GL_MIN_PROGRAM_TEXEL_OFFSET_NV"/>
                 <enum name="GL_MAX_PROGRAM_TEXEL_OFFSET_NV"/>
                 <enum name="GL_PROGRAM_ATTRIB_COMPONENTS_NV"/>
                 <enum name="GL_PROGRAM_RESULT_COMPONENTS_NV"/>
                 <enum name="GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV"/>
                 <enum name="GL_MAX_PROGRAM_RESULT_COMPONENTS_NV"/>
                 <enum name="GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV"/>
                 <enum name="GL_MAX_PROGRAM_GENERIC_RESULTS_NV"/>
@@ -43904,21 +44854,21 @@ typedef unsigned int GLhandleARB;
                 <enum name="GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV"/>
                 <enum name="GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV"/>
                 <enum name="GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV"/>
                 <enum name="GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV"/>
                 <enum name="GL_MAX_PROGRAM_SUBROUTINE_NUM_NV"/>
                 <command name="glProgramSubroutineParametersuivNV"/>
                 <command name="glGetProgramSubroutineParameteruivNV"/>
             </require>
         </extension>
         <extension name="GL_NV_gpu_program5_mem_extended" supported="gl"/>
-        <extension name="GL_NV_gpu_shader5" supported="gl|gles2">
+        <extension name="GL_NV_gpu_shader5" supported="gl|glcore|gles2">
             <require>
                 <enum name="GL_INT64_NV"/>
                 <enum name="GL_UNSIGNED_INT64_NV"/>
                 <enum name="GL_INT8_NV"/>
                 <enum name="GL_INT8_VEC2_NV"/>
                 <enum name="GL_INT8_VEC3_NV"/>
                 <enum name="GL_INT8_VEC4_NV"/>
                 <enum name="GL_INT16_NV"/>
                 <enum name="GL_INT16_VEC2_NV"/>
                 <enum name="GL_INT16_VEC3_NV"/>
@@ -44030,38 +44980,59 @@ typedef unsigned int GLhandleARB;
                 <command name="glVertexAttribs4hvNV"/>
             </require>
         </extension>
         <extension name="GL_NV_image_formats" supported="gles2"/>
         <extension name="GL_NV_instanced_arrays" supported="gles2">
             <require>
                 <enum name="GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV"/>
                 <command name="glVertexAttribDivisorNV"/>
             </require>
         </extension>
-        <extension name="GL_NV_internalformat_sample_query" supported="gl|gles2">
+        <extension name="GL_NV_internalformat_sample_query" supported="gl|glcore|gles2">
             <require>
                 <enum name="GL_RENDERBUFFER"/>
                 <enum name="GL_TEXTURE_2D_MULTISAMPLE"/>
                 <enum name="GL_TEXTURE_2D_MULTISAMPLE_ARRAY"/>
                 <enum name="GL_MULTISAMPLES_NV"/>
                 <enum name="GL_SUPERSAMPLE_SCALE_X_NV"/>
                 <enum name="GL_SUPERSAMPLE_SCALE_Y_NV"/>
                 <enum name="GL_CONFORMANT_NV"/>
                 <command name="glGetInternalformatSampleivNV"/>
             </require>
         </extension>
         <extension name="GL_NV_light_max_exponent" supported="gl">
             <require>
                 <enum name="GL_MAX_SHININESS_NV"/>
                 <enum name="GL_MAX_SPOT_EXPONENT_NV"/>
             </require>
         </extension>
+        <extension name="GL_NV_gpu_multicast" supported="gl">
+            <require>
+                <enum name="GL_PER_GPU_STORAGE_BIT_NV"/>
+                <enum name="GL_MULTICAST_GPUS_NV"/>
+                <enum name="GL_RENDER_GPU_MASK_NV"/>
+                <enum name="GL_PER_GPU_STORAGE_NV"/>
+                <enum name="GL_MULTICAST_PROGRAMMABLE_SAMPLE_LOCATION_NV"/>
+                <command name="glRenderGpuMaskNV"/>
+                <command name="glMulticastBufferSubDataNV"/>
+                <command name="glMulticastCopyBufferSubDataNV"/>
+                <command name="glMulticastCopyImageSubDataNV"/>
+                <command name="glMulticastBlitFramebufferNV"/>
+                <command name="glMulticastFramebufferSampleLocationsfvNV"/>
+                <command name="glMulticastBarrierNV"/>
+                <command name="glMulticastWaitSyncNV"/>
+                <command name="glMulticastGetQueryObjectivNV"/>
+                <command name="glMulticastGetQueryObjectuivNV"/>
+                <command name="glMulticastGetQueryObjecti64vNV"/>
+                <command name="glMulticastGetQueryObjectui64vNV"/>
+            </require>
+        </extension>
         <extension name="GL_NV_multisample_coverage" supported="gl">
             <require>
                 <enum name="GL_SAMPLES_ARB"/>
                 <enum name="GL_COLOR_SAMPLES_NV"/>
             </require>
         </extension>
         <extension name="GL_NV_multisample_filter_hint" supported="gl">
             <require>
                 <enum name="GL_MULTISAMPLE_FILTER_HINT_NV"/>
             </require>
@@ -44109,21 +45080,21 @@ typedef unsigned int GLhandleARB;
                 <enum name="GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV"/>
                 <enum name="GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV"/>
                 <enum name="GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV"/>
                 <enum name="GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV"/>
                 <command name="glProgramBufferParametersfvNV"/>
                 <command name="glProgramBufferParametersIivNV"/>
                 <command name="glProgramBufferParametersIuivNV"/>
             </require>
         </extension>
         <extension name="GL_NV_parameter_buffer_object2" supported="gl"/>
-        <extension name="GL_NV_path_rendering" supported="gl|gles2">
+        <extension name="GL_NV_path_rendering" supported="gl|glcore|gles2">
             <require>
                 <enum name="GL_PATH_FORMAT_SVG_NV"/>
                 <enum name="GL_PATH_FORMAT_PS_NV"/>
                 <enum name="GL_STANDARD_FONT_NAME_NV"/>
                 <enum name="GL_SYSTEM_FONT_NAME_NV"/>
                 <enum name="GL_FILE_NAME_NV"/>
                 <enum name="GL_PATH_STROKE_WIDTH_NV"/>
                 <enum name="GL_PATH_END_CAPS_NV"/>
                 <enum name="GL_PATH_INITIAL_END_CAP_NV"/>
                 <enum name="GL_PATH_TERMINAL_END_CAP_NV"/>
@@ -44349,21 +45320,21 @@ typedef unsigned int GLhandleARB;
                 <enum name="GL_PATH_MODELVIEW_MATRIX_NV"/>
                 <enum name="GL_PATH_MAX_MODELVIEW_STACK_DEPTH_NV"/>
                 <enum name="GL_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV"/>
                 <enum name="GL_PATH_PROJECTION_STACK_DEPTH_NV"/>
                 <enum name="GL_PATH_PROJECTION_MATRIX_NV"/>
                 <enum name="GL_PATH_MAX_PROJECTION_STACK_DEPTH_NV"/>
                 <enum name="GL_PATH_TRANSPOSE_PROJECTION_MATRIX_NV"/>
                 <enum name="GL_FRAGMENT_INPUT_NV"/>
             </require>
         </extension>
-        <extension name="GL_NV_path_rendering_shared_edge" supported="gl|gles2">
+        <extension name="GL_NV_path_rendering_shared_edge" supported="gl|glcore|gles2">
             <require>
                 <enum name="GL_SHARED_EDGE_NV"/>
             </require>
         </extension>
         <extension name="GL_NV_pixel_data_range" supported="gl">
             <require>
                 <enum name="GL_WRITE_PIXEL_DATA_RANGE_NV"/>
                 <enum name="GL_READ_PIXEL_DATA_RANGE_NV"/>
                 <enum name="GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV"/>
                 <enum name="GL_READ_PIXEL_DATA_RANGE_LENGTH_NV"/>
@@ -44519,90 +45490,90 @@ typedef unsigned int GLhandleARB;
                 <enum name="GL_SRGB8_NV"/>
                 <enum name="GL_SLUMINANCE8_NV"/>
                 <enum name="GL_SLUMINANCE8_ALPHA8_NV"/>
                 <enum name="GL_COMPRESSED_SRGB_S3TC_DXT1_NV"/>
                 <enum name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV"/>
                 <enum name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV"/>
                 <enum name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV"/>
                 <enum name="GL_ETC1_SRGB8_NV"/>
             </require>
         </extension>
-        <extension name="GL_NV_sample_locations" supported="gl|gles2">
+        <extension name="GL_NV_sample_locations" supported="gl|glcore|gles2">
             <require>
                 <enum name="GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV"/>
                 <enum name="GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV"/>
                 <enum name="GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV"/>
                 <enum name="GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV"/>
                 <enum name="GL_SAMPLE_LOCATION_NV"/>
                 <enum name="GL_PROGRAMMABLE_SAMPLE_LOCATION_NV"/>
                 <enum name="GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV"/>
                 <enum name="GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV"/>
                 <command name="glFramebufferSampleLocationsfvNV"/>
                 <command name="glNamedFramebufferSampleLocationsfvNV"/>
                 <command name="glResolveDepthValuesNV"/>
             </require>
         </extension>
-        <extension name="GL_NV_sample_mask_override_coverage" supported="gl|gles2"/>
-        <extension name="GL_NV_shader_atomic_counters" supported="gl"/>
-        <extension name="GL_NV_shader_atomic_float" supported="gl"/>
-        <extension name="GL_NV_shader_atomic_float64" supported="gl"/>
-        <extension name="GL_NV_shader_atomic_fp16_vector" supported="gl|gles2"/>
-        <extension name="GL_NV_shader_atomic_int64" supported="gl"/>
-        <extension name="GL_NV_shader_buffer_load" supported="gl">
+        <extension name="GL_NV_sample_mask_override_coverage" supported="gl|glcore|gles2"/>
+        <extension name="GL_NV_shader_atomic_counters" supported="gl|glcore"/>
+        <extension name="GL_NV_shader_atomic_float" supported="gl|glcore"/>
+        <extension name="GL_NV_shader_atomic_float64" supported="gl|glcore"/>
+        <extension name="GL_NV_shader_atomic_fp16_vector" supported="gl|glcore|gles2"/>
+        <extension name="GL_NV_shader_atomic_int64" supported="gl|glcore"/>
+        <extension name="GL_NV_shader_buffer_load" supported="gl|glcore">
             <require>
                 <enum name="GL_BUFFER_GPU_ADDRESS_NV"/>
                 <enum name="GL_GPU_ADDRESS_NV"/>
                 <enum name="GL_MAX_SHADER_BUFFER_ADDRESS_NV"/>
                 <command name="glMakeBufferResidentNV"/>
                 <command name="glMakeBufferNonResidentNV"/>
                 <command name="glIsBufferResidentNV"/>
                 <command name="glMakeNamedBufferResidentNV"/>
                 <command name="glMakeNamedBufferNonResidentNV"/>
                 <command name="glIsNamedBufferResidentNV"/>
                 <command name="glGetBufferParameterui64vNV"/>
                 <command name="glGetNamedBufferParameterui64vNV"/>
                 <command name="glGetIntegerui64vNV"/>
                 <command name="glUniformui64NV"/>
                 <command name="glUniformui64vNV"/>
                 <command name="glGetUniformui64vNV"/>
                 <command name="glProgramUniformui64NV"/>
                 <command name="glProgramUniformui64vNV"/>
             </require>
         </extension>
-        <extension name="GL_NV_shader_buffer_store" supported="gl">
+        <extension name="GL_NV_shader_buffer_store" supported="gl|glcore">
             <require>
                 <enum name="GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV"/>
                 <enum name="GL_READ_WRITE"/>
                 <enum name="GL_WRITE_ONLY"/>
             </require>
         </extension>
         <extension name="GL_NV_shader_noperspective_interpolation" supported="gles2"/>
         <extension name="GL_NV_shader_storage_buffer_object" supported="gl"/>
-        <extension name="GL_NV_shader_thread_group" supported="gl">
+        <extension name="GL_NV_shader_thread_group" supported="gl|glcore">
             <require>
                 <enum name="GL_WARP_SIZE_NV"/>
                 <enum name="GL_WARPS_PER_SM_NV"/>
                 <enum name="GL_SM_COUNT_NV"/>
             </require>
         </extension>
-        <extension name="GL_NV_shader_thread_shuffle" supported="gl"/>
+        <extension name="GL_NV_shader_thread_shuffle" supported="gl|glcore"/>
         <extension name="GL_NV_shadow_samplers_array" supported="gles2">
             <require>
                 <enum name="GL_SAMPLER_2D_ARRAY_SHADOW_NV"/>
             </require>
         </extension>
         <extension name="GL_NV_shadow_samplers_cube" supported="gles2">
             <require>
                 <enum name="GL_SAMPLER_CUBE_SHADOW_NV"/>
             </require>
         </extension>
-        <extension name="GL_NV_stereo_view_rendering" supported="gl"/>
+        <extension name="GL_NV_stereo_view_rendering" supported="gl|glcore"/>
         <extension name="GL_NV_tessellation_program5" supported="gl">
             <require>
                 <enum name="GL_MAX_PROGRAM_PATCH_ATTRIBS_NV"/>
                 <enum name="GL_TESS_CONTROL_PROGRAM_NV"/>
                 <enum name="GL_TESS_EVALUATION_PROGRAM_NV"/>
                 <enum name="GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV"/>
                 <enum name="GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV"/>
             </require>
         </extension>
         <extension name="GL_NV_texgen_emboss" supported="gl">
@@ -44611,21 +45582,21 @@ typedef unsigned int GLhandleARB;
                 <enum name="GL_EMBOSS_CONSTANT_NV"/>
                 <enum name="GL_EMBOSS_MAP_NV"/>
             </require>
         </extension>
         <extension name="GL_NV_texgen_reflection" supported="gl">
             <require>
                 <enum name="GL_NORMAL_MAP_NV"/>
                 <enum name="GL_REFLECTION_MAP_NV"/>
             </require>
         </extension>
-        <extension name="GL_NV_texture_barrier" supported="gl">
+        <extension name="GL_NV_texture_barrier" supported="gl|glcore">
             <require>
                 <command name="glTextureBarrierNV"/>
             </require>
         </extension>
         <extension name="GL_NV_texture_border_clamp" supported="gles2">
             <require>
                 <enum name="GL_TEXTURE_BORDER_COLOR_NV"/>
                 <enum name="GL_CLAMP_TO_BORDER_NV"/>
             </require>
         </extension>
@@ -44828,21 +45799,21 @@ typedef unsigned int GLhandleARB;
                 <enum name="GL_TRANSFORM_FEEDBACK_BINDING_NV"/>
                 <command name="glBindTransformFeedbackNV"/>
                 <command name="glDeleteTransformFeedbacksNV"/>
                 <command name="glGenTransformFeedbacksNV"/>
                 <command name="glIsTransformFeedbackNV"/>
                 <command name="glPauseTransformFeedbackNV"/>
                 <command name="glResumeTransformFeedbackNV"/>
                 <command name="glDrawTransformFeedbackNV"/>
             </require>
         </extension>
-        <extension name="GL_NV_uniform_buffer_unified_memory" supported="gl">
+        <extension name="GL_NV_uniform_buffer_unified_memory" supported="gl|glcore">
             <require>
                 <enum name="GL_UNIFORM_BUFFER_UNIFIED_NV"/>
                 <enum name="GL_UNIFORM_BUFFER_ADDRESS_NV"/>
                 <enum name="GL_UNIFORM_BUFFER_LENGTH_NV"/>
             </require>
         </extension>
         <extension name="GL_NV_vdpau_interop" supported="gl">
             <require>
                 <enum name="GL_SURFACE_STATE_NV"/>
                 <enum name="GL_SURFACE_REGISTERED_NV"/>
@@ -44869,21 +45840,21 @@ typedef unsigned int GLhandleARB;
                 <enum name="GL_VERTEX_ARRAY_RANGE_POINTER_NV"/>
                 <command name="glFlushVertexArrayRangeNV"/>
                 <command name="glVertexArrayRangeNV"/>
             </require>
         </extension>
         <extension name="GL_NV_vertex_array_range2" supported="gl">
             <require>
                 <enum name="GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV"/>
             </require>
         </extension>
-        <extension name="GL_NV_vertex_attrib_integer_64bit" supported="gl">
+        <extension name="GL_NV_vertex_attrib_integer_64bit" supported="gl|glcore">
             <require>
                 <enum name="GL_INT64_NV"/>
                 <enum name="GL_UNSIGNED_INT64_NV"/>
                 <command name="glVertexAttribL1i64NV"/>
                 <command name="glVertexAttribL2i64NV"/>
                 <command name="glVertexAttribL3i64NV"/>
                 <command name="glVertexAttribL4i64NV"/>
                 <command name="glVertexAttribL1i64vNV"/>
                 <command name="glVertexAttribL2i64vNV"/>
                 <command name="glVertexAttribL3i64vNV"/>
@@ -44894,21 +45865,21 @@ typedef unsigned int GLhandleARB;
                 <command name="glVertexAttribL4ui64NV"/>
                 <command name="glVertexAttribL1ui64vNV"/>
                 <command name="glVertexAttribL2ui64vNV"/>
                 <command name="glVertexAttribL3ui64vNV"/>
                 <command name="glVertexAttribL4ui64vNV"/>
                 <command name="glGetVertexAttribLi64vNV"/>
                 <command name="glGetVertexAttribLui64vNV"/>
                 <command name="glVertexAttribLFormatNV"/>
             </require>
         </extension>
-        <extension name="GL_NV_vertex_buffer_unified_memory" supported="gl">
+        <extension name="GL_NV_vertex_buffer_unified_memory" supported="gl|glcore">
             <require>
                 <enum name="GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV"/>
                 <enum name="GL_ELEMENT_ARRAY_UNIFIED_NV"/>
                 <enum name="GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV"/>
                 <enum name="GL_VERTEX_ARRAY_ADDRESS_NV"/>
                 <enum name="GL_NORMAL_ARRAY_ADDRESS_NV"/>
                 <enum name="GL_COLOR_ARRAY_ADDRESS_NV"/>
                 <enum name="GL_INDEX_ARRAY_ADDRESS_NV"/>
                 <enum name="GL_TEXTURE_COORD_ARRAY_ADDRESS_NV"/>
                 <enum name="GL_EDGE_FLAG_ARRAY_ADDRESS_NV"/>
@@ -45196,22 +46167,22 @@ typedef unsigned int GLhandleARB;
                 <command name="glScissorIndexedNV"/>
                 <command name="glScissorIndexedvNV"/>
                 <command name="glDepthRangeArrayfvNV"/>
                 <command name="glDepthRangeIndexedfNV"/>
                 <command name="glGetFloati_vNV"/>
                 <command name="glEnableiNV"/>
                 <command name="glDisableiNV"/>
                 <command name="glIsEnablediNV"/>
             </require>
         </extension>
-        <extension name="GL_NV_viewport_array2" supported="gl|gles2"/>
-        <extension name="GL_NV_viewport_swizzle" supported="gl|gles2">
+        <extension name="GL_NV_viewport_array2" supported="gl|glcore|gles2"/>
+        <extension name="GL_NV_viewport_swizzle" supported="gl|glcore|gles2">
             <require>
                 <enum name="GL_VIEWPORT_SWIZZLE_POSITIVE_X_NV"/>
                 <enum name="GL_VIEWPORT_SWIZZLE_NEGATIVE_X_NV"/>
                 <enum name="GL_VIEWPORT_SWIZZLE_POSITIVE_Y_NV"/>
                 <enum name="GL_VIEWPORT_SWIZZLE_NEGATIVE_Y_NV"/>
                 <enum name="GL_VIEWPORT_SWIZZLE_POSITIVE_Z_NV"/>
                 <enum name="GL_VIEWPORT_SWIZZLE_NEGATIVE_Z_NV"/>
                 <enum name="GL_VIEWPORT_SWIZZLE_POSITIVE_W_NV"/>
                 <enum name="GL_VIEWPORT_SWIZZLE_NEGATIVE_W_NV"/>
                 <enum name="GL_VIEWPORT_SWIZZLE_X_NV"/>
@@ -46089,29 +47060,30 @@ typedef unsigned int GLhandleARB;
                 <enum name="GL_RESAMPLE_AVERAGE_OML"/>
                 <enum name="GL_RESAMPLE_DECIMATE_OML"/>
             </require>
         </extension>
         <extension name="GL_OML_subsample" supported="gl">
             <require>
                 <enum name="GL_FORMAT_SUBSAMPLE_24_24_OML"/>
                 <enum name="GL_FORMAT_SUBSAMPLE_244_244_OML"/>
             </require>
         </extension>
-        <extension name="GL_OVR_multiview" supported="gl|gles2">
+        <extension name="GL_OVR_multiview" supported="gl|glcore|gles2">
             <require>
                 <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR"/>
                 <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR"/>
                 <enum name="GL_MAX_VIEWS_OVR"/>
+                <enum name="GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR"/>
                 <command name="glFramebufferTextureMultiviewOVR"/>
             </require>
         </extension>
-        <extension name="GL_OVR_multiview2" supported="gl|gles2"/>
+        <extension name="GL_OVR_multiview2" supported="gl|glcore|gles2"/>
         <extension name="GL_OVR_multiview_multisampled_render_to_texture" supported="gles2">
             <require>
                 <command name="glFramebufferTextureMultisampleMultiviewOVR"/>
             </require>
         </extension>
         <extension name="GL_PGI_misc_hints" supported="gl">
             <require>
                 <enum name="GL_PREFER_DOUBLEBUFFER_HINT_PGI"/>
                 <enum name="GL_CONSERVE_MEMORY_HINT_PGI"/>
                 <enum name="GL_RECLAIM_MEMORY_HINT_PGI"/>
@@ -46209,25 +47181,39 @@ typedef unsigned int GLhandleARB;
             </require>
         </extension>
         <extension name="GL_QCOM_extended_get2" supported="gles1|gles2">
             <require>
                 <command name="glExtGetShadersQCOM"/>
                 <command name="glExtGetProgramsQCOM"/>
                 <command name="glExtIsProgramBinaryQCOM"/>
                 <command name="glExtGetProgramBinarySourceQCOM"/>
             </require>
         </extension>
+        <extension name="GL_QCOM_framebuffer_foveated" supported="gles2">
+            <require>
+                <enum name="GL_FOVEATION_ENABLE_BIT_QCOM"/>
+                <enum name="GL_FOVEATION_SCALED_BIN_METHOD_BIT_QCOM"/>
+                <command name="glFramebufferFoveationConfigQCOM"/>
+                <command name="glFramebufferFoveationParametersQCOM"/>
+            </require>
+        </extension>
         <extension name="GL_QCOM_perfmon_global_mode" supported="gles1|gles2">
             <require>
                 <enum name="GL_PERFMON_GLOBAL_MODE_QCOM"/>
             </require>
         </extension>
+        <extension name="GL_QCOM_shader_framebuffer_fetch_noncoherent" supported="gles2">
+            <require>
+                <enum name="GL_FRAMEBUFFER_FETCH_NONCOHERENT_QCOM"/>
+                <command name="glFramebufferFetchBarrierQCOM"/>
+            </require>
+        </extension>
         <extension name="GL_QCOM_tiled_rendering" supported="gles1|gles2">
             <require>
                 <enum name="GL_COLOR_BUFFER_BIT0_QCOM"/>
                 <enum name="GL_COLOR_BUFFER_BIT1_QCOM"/>
                 <enum name="GL_COLOR_BUFFER_BIT2_QCOM"/>
                 <enum name="GL_COLOR_BUFFER_BIT3_QCOM"/>
                 <enum name="GL_COLOR_BUFFER_BIT4_QCOM"/>
                 <enum name="GL_COLOR_BUFFER_BIT5_QCOM"/>
                 <enum name="GL_COLOR_BUFFER_BIT6_QCOM"/>
                 <enum name="GL_COLOR_BUFFER_BIT7_QCOM"/>
diff --git a/tests/util/piglit-dispatch.h b/tests/util/piglit-dispatch.h
index f28ce4dd4..dee1b699c 100644
--- a/tests/util/piglit-dispatch.h
+++ b/tests/util/piglit-dispatch.h
@@ -125,20 +125,22 @@ typedef unsigned short GLhalfNV;
 typedef void *GLeglImageOES;
 
 typedef void (APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,GLvoid *userParam);
 
 typedef void (APIENTRY *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,GLvoid *userParam);
 
 typedef void (APIENTRY *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,GLvoid *userParam);
 
 typedef void (APIENTRY *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,GLvoid *userParam);
 
+typedef void (APIENTRY *GLVULKANPROCNV)(void);
+
 typedef void (APIENTRY *piglit_dispatch_function_ptr)(void);
 
 typedef piglit_dispatch_function_ptr (*piglit_get_core_proc_address_function_ptr)(const char *, int);
 
 typedef piglit_dispatch_function_ptr (*piglit_get_ext_proc_address_function_ptr)(const char *);
 
 typedef void (*piglit_error_function_ptr)(const char *);
 
 typedef enum {
 	PIGLIT_DISPATCH_GL,
-- 
2.13.3



More information about the Piglit mailing list