diff --git a/api/GL/glcorearb.h b/api/GL/glcorearb.h
index d625420..ea6acc8 100755
--- a/api/GL/glcorearb.h
+++ b/api/GL/glcorearb.h
@@ -4662,6 +4662,11 @@
 #define GL_SR8_EXT                        0x8FBD
 #endif /* GL_EXT_texture_sRGB_R8 */
 
+#ifndef GL_EXT_texture_sRGB_RG8
+#define GL_EXT_texture_sRGB_RG8 1
+#define GL_SRG8_EXT                       0x8FBE
+#endif /* GL_EXT_texture_sRGB_RG8 */
+
 #ifndef GL_EXT_texture_sRGB_decode
 #define GL_EXT_texture_sRGB_decode 1
 #define GL_TEXTURE_SRGB_DECODE_EXT        0x8A48
@@ -5612,6 +5617,12 @@
 #define GL_SHARED_EDGE_NV                 0xC0
 #endif /* GL_NV_path_rendering_shared_edge */
 
+#ifndef GL_NV_primitive_shading_rate
+#define GL_NV_primitive_shading_rate 1
+#define GL_SHADING_RATE_IMAGE_PER_PRIMITIVE_NV 0x95B1
+#define GL_SHADING_RATE_IMAGE_PALETTE_COUNT_NV 0x95B2
+#endif /* GL_NV_primitive_shading_rate */
+
 #ifndef GL_NV_representative_fragment_test
 #define GL_NV_representative_fragment_test 1
 #define GL_REPRESENTATIVE_FRAGMENT_TEST_NV 0x937F
diff --git a/api/GL/glext.h b/api/GL/glext.h
index f6499a5..4a4a5ce 100644
--- a/api/GL/glext.h
+++ b/api/GL/glext.h
@@ -32,7 +32,7 @@
 #define GLAPI extern
 #endif
 
-#define GL_GLEXT_VERSION 20201027
+#define GL_GLEXT_VERSION 20210107
 
 #include <KHR/khrplatform.h>
 
@@ -8536,6 +8536,11 @@
 #define GL_SR8_EXT                        0x8FBD
 #endif /* GL_EXT_texture_sRGB_R8 */
 
+#ifndef GL_EXT_texture_sRGB_RG8
+#define GL_EXT_texture_sRGB_RG8 1
+#define GL_SRG8_EXT                       0x8FBE
+#endif /* GL_EXT_texture_sRGB_RG8 */
+
 #ifndef GL_EXT_texture_sRGB_decode
 #define GL_EXT_texture_sRGB_decode 1
 #define GL_TEXTURE_SRGB_DECODE_EXT        0x8A48
@@ -10780,6 +10785,12 @@
 #endif
 #endif /* GL_NV_primitive_restart */
 
+#ifndef GL_NV_primitive_shading_rate
+#define GL_NV_primitive_shading_rate 1
+#define GL_SHADING_RATE_IMAGE_PER_PRIMITIVE_NV 0x95B1
+#define GL_SHADING_RATE_IMAGE_PALETTE_COUNT_NV 0x95B2
+#endif /* GL_NV_primitive_shading_rate */
+
 #ifndef GL_NV_query_resource
 #define GL_NV_query_resource 1
 #define GL_QUERY_RESOURCE_TYPE_VIDMEM_ALLOC_NV 0x9540
diff --git a/api/GLES/gl.h b/api/GLES/gl.h
index e598367..2153011 100644
--- a/api/GLES/gl.h
+++ b/api/GLES/gl.h
@@ -17,7 +17,7 @@
 
 #include <GLES/glplatform.h>
 
-/* Generated on date 20201027 */
+/* Generated on date 20210107 */
 
 /* Generated C header for:
  * API: gles1
diff --git a/api/GLES/glext.h b/api/GLES/glext.h
index 037af10..61a6363 100644
--- a/api/GLES/glext.h
+++ b/api/GLES/glext.h
@@ -19,7 +19,7 @@
 #define GL_APIENTRYP GL_APIENTRY*
 #endif
 
-/* Generated on date 20201027 */
+/* Generated on date 20210107 */
 
 /* Generated C header for:
  * API: gles1
diff --git a/api/GLES2/gl2.h b/api/GLES2/gl2.h
index ef3fe7c..3c5e6d3 100644
--- a/api/GLES2/gl2.h
+++ b/api/GLES2/gl2.h
@@ -25,7 +25,7 @@
 #define GL_GLES_PROTOTYPES 1
 #endif
 
-/* Generated on date 20201027 */
+/* Generated on date 20210107 */
 
 /* Generated C header for:
  * API: gles2
diff --git a/api/GLES2/gl2ext.h b/api/GLES2/gl2ext.h
index 7c0b043..8a66d82 100644
--- a/api/GLES2/gl2ext.h
+++ b/api/GLES2/gl2ext.h
@@ -19,7 +19,7 @@
 #define GL_APIENTRYP GL_APIENTRY*
 #endif
 
-/* Generated on date 20201027 */
+/* Generated on date 20210107 */
 
 /* Generated C header for:
  * API: gles2
@@ -3442,6 +3442,12 @@
 #endif
 #endif /* GL_NV_polygon_mode */
 
+#ifndef GL_NV_primitive_shading_rate
+#define GL_NV_primitive_shading_rate 1
+#define GL_SHADING_RATE_IMAGE_PER_PRIMITIVE_NV 0x95B1
+#define GL_SHADING_RATE_IMAGE_PALETTE_COUNT_NV 0x95B2
+#endif /* GL_NV_primitive_shading_rate */
+
 #ifndef GL_NV_read_buffer
 #define GL_NV_read_buffer 1
 #define GL_READ_BUFFER_NV                 0x0C02
@@ -3791,6 +3797,14 @@
 #endif
 #endif /* GL_QCOM_extended_get2 */
 
+#ifndef GL_QCOM_frame_extrapolation
+#define GL_QCOM_frame_extrapolation 1
+typedef void (GL_APIENTRYP PFNGLEXTRAPOLATETEX2DQCOMPROC) (GLuint src1, GLuint src2, GLuint output, GLfloat scaleFactor);
+#ifdef GL_GLEXT_PROTOTYPES
+GL_APICALL void GL_APIENTRY glExtrapolateTex2DQCOM (GLuint src1, GLuint src2, GLuint output, GLfloat scaleFactor);
+#endif
+#endif /* GL_QCOM_frame_extrapolation */
+
 #ifndef GL_QCOM_framebuffer_foveated
 #define GL_QCOM_framebuffer_foveated 1
 #define GL_FOVEATION_ENABLE_BIT_QCOM      0x00000001
diff --git a/api/GLES3/gl3.h b/api/GLES3/gl3.h
index 7ad72f9..6bb4d8f 100644
--- a/api/GLES3/gl3.h
+++ b/api/GLES3/gl3.h
@@ -25,7 +25,7 @@
 #define GL_GLES_PROTOTYPES 1
 #endif
 
-/* Generated on date 20201027 */
+/* Generated on date 20210107 */
 
 /* Generated C header for:
  * API: gles2
diff --git a/extensions/ARB/ARB_indirect_parameters.txt b/extensions/ARB/ARB_indirect_parameters.txt
index 0dc05dc..f7024c6 100644
--- a/extensions/ARB/ARB_indirect_parameters.txt
+++ b/extensions/ARB/ARB_indirect_parameters.txt
@@ -36,8 +36,8 @@
 
 Version
 
-    Last Modified Date: 23 October 2017
-    Revision: 4
+    Last Modified Date: 11 November 2020
+    Revision: 5
 
 Number
 
@@ -139,7 +139,7 @@
         void MultiDrawArraysIndirectCountARB(enum mode,
                                              const void *indirect,
                                              intptr drawcount,
-                                             intptr maxdrawcount,
+                                             sizei maxdrawcount,
                                              sizei stride);
 
     behaves similarly to MultiDrawArraysIndirect, except that <drawcount>
@@ -218,3 +218,6 @@
      3    06/20/2013  pdaniell  Modify the <indirect> parameter type to
                                 const void *.
      4    10/23/2017  nhaehnle  Add COMMAND_BARRIER_BIT language.
+     5    11/11/2020  pdaniell  Fix the type of the maxdrawcount parameter
+                                of MultiDrawArraysIndirectCountARB to be
+                                sizei making it consistent in the extension.
diff --git a/extensions/EXT/EXT_disjoint_timer_query.txt b/extensions/EXT/EXT_disjoint_timer_query.txt
index 9c30452..d31619a 100644
--- a/extensions/EXT/EXT_disjoint_timer_query.txt
+++ b/extensions/EXT/EXT_disjoint_timer_query.txt
@@ -33,7 +33,7 @@
 
 Version
 
-    Version 8, December 11, 2019
+    Version 9, November 20, 2020
 
 Number
 
@@ -477,7 +477,7 @@
         
     (2) This example uses QueryCounter.
     
-        GLint queries[1];
+        GLint queries[2];
         GLint available = 0;
         GLint disjointOccurred = 0;
         /* Timer queries can contain more than 32 bits of data, so always
@@ -485,20 +485,24 @@
         GLuint64 timeStart, timeEnd, timeElapsed = 0;
 
         /* Create a query object. */
-        glGenQueries(1, queries);
+        glGenQueries(2, queries);
 
         /* Clear disjoint error */
         glGetIntegerv(GL_GPU_DISJOINT_EXT, &disjointOccurred);
 
+        /* Query current timestamp before drawing */
+        glQueryCounterEXT(queries[0], GL_TIMESTAMP_EXT);
+
         /* Draw full rendertarget of objects */
 
-        glQueryCounterEXT(queries[0], GL_TIMESTAMP_EXT);
+        /* Query current timestamp after drawing */
+        glQueryCounterEXT(queries[1], GL_TIMESTAMP_EXT);
         
         /* Do some other work so you don't stall waiting for available */
         
         /* Wait for the query result to become available */
         while (!available) {
-            glGetQueryObjectiv(queries[0], GL_QUERY_RESULT_AVAILABLE, &available);
+            glGetQueryObjectiv(queries[1], GL_QUERY_RESULT_AVAILABLE, &available);
         }
         
         /* Check for disjoint operation. */
@@ -507,15 +511,18 @@
         /* If a disjoint operation occurred, continue without reading the the
            values */
         if (!disjointOccurred) {
+            /* Get timestamp for when rendertarget started. */
+            glGetQueryObjectui64vEXT(queries[0], GL_QUERY_RESULT, &timeStart);
             /* Get timestamp for when rendertarget finished. */
-            glGetQueryObjectui64vEXT(queries[0], GL_QUERY_RESULT, &timeElapsed);
+            glGetQueryObjectui64vEXT(queries[1], GL_QUERY_RESULT, &timeEnd);
+            /* See how much time the rendering took in nanoseconds. */
+            timeElapsed = timeEnd - timeStart;
             
             /* Do something useful with the time if a disjoint operation did
                not occur.  Note that care should be taken to use all
                significant bits of the result, not just the least significant
                32 bits. */
-                
-            AdjustObjectLODBasedOnDrawTime(i, timeElapsed);
+            AdjustObjectLODBasedOnDrawTime(timeElapsed);
         }
         
     (3) This example demonstrates how to measure the latency between GL
@@ -538,7 +545,7 @@
         glGetIntegerv(GL_GPU_DISJOINT_EXT, &disjointOccurred);
         
         /* Queue a query to find out when the frame finishes on the GL */
-        glQueryCounterEXT(GL_TIMESTAMP_EXT, endFrameQuery);
+        glQueryCounterEXT(endFrameQuery, GL_TIMESTAMP_EXT);
 
         /* Get the current GL time without stalling the GL */
         glGetIntegerv(GL_TIMESTAMP_EXT, &flushTime);
@@ -754,6 +761,8 @@
     will not be set.
 
 Revision History
+    Revision 9, 2020/11/20 (xndcn)
+      - Minor fix of code sample
     Revision 8, 2019/12/11 (Jon Leech)
       - Add actual spec language defining GetInteger64vEXT (github
         OpenGL-Registry issue 326)
diff --git a/extensions/EXT/EXT_texture_sRGB_RG8.txt b/extensions/EXT/EXT_texture_sRGB_RG8.txt
index 35fac02..c973dba 100644
--- a/extensions/EXT/EXT_texture_sRGB_RG8.txt
+++ b/extensions/EXT/EXT_texture_sRGB_RG8.txt
@@ -12,6 +12,7 @@
     Maurice Ribble
     Tobias Hector
     Jan-Harald Fredriksen
+    Dylan Perks
     Contributors to EXT_texture_sRGB_R8, on which this is based.
 
 Contact
@@ -24,18 +25,28 @@
 
 Version
 
-    Last Modified Date: February 05, 2015
-    Revision: 3.0
+    Last Modified Date: December 11, 2020
+    Revision: 4
 
 Number
 
     OpenGL ES Extension #223
+    OpenGL Extension #555
 
 Dependencies
 
-    OpenGL ES 3.0 is required.
+    OpenGL ES 3.0 or OpenGL 1.2 is required.
 
-    This extension is written against the OpenGL ES 3.1 specification.
+    This extension is written against the OpenGL ES 3.1 and
+    OpenGL 4.6 (Core Profile) specifications.
+
+    This extension interacts with ARB_texture_view.
+
+    This extension interacts with EXT_texture_view.
+
+    This extension interacts with OES_texture_view.
+
+    This extension interacts with ARB_direct_state_access.
 
 Overview
 
@@ -49,8 +60,9 @@
 
 New Tokens
 
-    Accepted by the <internalformat> parameters of TexImage2D, TexImage3D,
-    TexStorage2D and TexStorage3D:
+    Accepted by the <internalformat> parameters of TexImage3D, TexImage2D,
+    TexImage1D, TexStorage3D, TexStorage2D, TexStorage1D, TextureStorage3D,
+    TextureStorage2D, and TextureStorage1D:
 
         SRG8_EXT    0x8FBE
 
@@ -78,6 +90,62 @@
         ---------------
         SRG8_EXT
 
+Additions to Chapter 8 of the OpenGL 4.6 (Core Profile) Specification
+(Textures and Samplers)
+
+    The following table entry is added to Table 8.2 (Valid combinations of
+    format, type and sized internalformat):
+
+        Format    Type             External Bytes per Pixel    Internal Format
+        ------    ----             ------------------------    ---------------
+        RG        UNSIGNED_BYTE    2                           SRG8_EXT
+
+    The following table entry is added to Table 8.12 (Correspondence of sized
+    internal color formats to base internal formats):
+
+        Sized Internal Format    Base Internal Format    R    G    B    A    S    CR    TF    Req. rend.    Req. tex.
+        ---------------------    --------------------    -    -    -    -    -    --    --    ----------    ---------
+        SRG8_EXT                 RG                      8    8                         X                   X
+    
+    The following table entry is added to Table 8.22 (Compatible internal
+    formats for TextureView):
+
+        Class              Internal formats
+        ---------------    ----------------
+        VIEW_CLASS_16_BITS  SRG8_EXT
+
+    The following table entry is added to Table 8.24 (sRGB texture internal
+    formats):
+
+        Internal Format
+        ---------------
+        SRG8_EXT
+        
+Dependencies on OpenGL
+        
+    If OpenGL is not supported, ignore all references to 1D textures,
+    including TexImage1D, TexStorage1D, and TextureStorage1D.
+    
+Dependencies on OpenGL 4.5 and ARB_direct_state_access
+
+    If neither OpenGL 4.5 nor ARB_direct_state_access are supported,
+    ignore all references to TextureStorage3D, TextureStorage2D, and
+    TextureStorage1D.
+
+Dependencies on ARB_texture_view
+
+    If ARB_texture_view is supported, add SRG8_EXT to the Internal formats
+    column of the VIEW_CLASS_16_BITS row in Table 3.X.2.
+
+Dependencies on EXT_texture_view
+
+    If EXT_texture_view is supported, add SRG8_EXT to the Internal formats
+    column of the VIEW_CLASS_16_BITS row in Table 8.X.2.
+
+Dependencies on OES_texture_view
+
+    If OES_texture_view is supported, add SRG8_EXT to the Internal formats
+    column of the VIEW_CLASS_16_BITS row in Table 8.X.2.
 
 Errors
 
@@ -92,3 +160,4 @@
     #01    2/5/2015    Tobias Hector      Initial revision.
     #02    2/5/2015    Tobias Hector      Fixed Table 8.13 entry and whitespace issues.
     #03    2/17/2015   Tobias Hector      Fixed Table 8.2 entry to correctly say 2 bytes.
+    #04    12/11/2020  Dylan Perks        Add GL interactions and register for GL
diff --git a/extensions/NV/NV_primitive_shading_rate.txt b/extensions/NV/NV_primitive_shading_rate.txt
new file mode 100644
index 0000000..dc0bb42
--- /dev/null
+++ b/extensions/NV/NV_primitive_shading_rate.txt
@@ -0,0 +1,267 @@
+Name
+
+    NV_primitive_shading_rate
+
+Name Strings
+
+    GL_NV_primitive_shading_rate
+
+Contact
+
+    Pat Brown, NVIDIA Corporation (pbrown 'at' nvidia.com)
+
+Contributors
+
+    Jeff Bolz, NVIDIA
+
+Status
+
+    Shipping
+
+Version
+
+    Last Modified:      October 30, 2020
+    Revision:           1
+
+Number
+
+    OpenGL Extension #554
+    OpenGL ES Extension #332
+
+Dependencies
+
+    This extension is written against the OpenGL 4.6 Specification
+    (Compatibility Profile), dated February 2, 2019.
+
+    OpenGL 4.5 or OpenGL ES 3.2 is required.
+
+    NV_shading_rate_image is required.
+
+    This extension requires support from the OpenGL Shading Language (GLSL)
+    extension "NV_primitive_shading_rate", which can be found at the Khronos
+    Group Github site here:
+
+        https://github.com/KhronosGroup/GLSL
+
+    This extension interacts with NV_mesh_shader.
+
+Overview
+
+    This extension builds on top of the NV_shading_rate_image extension to
+    provide OpenGL API support for using a per-primitive shading rate value to
+    control the computation of the rate used to process each fragment.
+
+    In the NV_shading_rate_image extension, the shading rate for each fragment
+    produced by a primitive is determined by looking up a texel in the bound
+    shading rate image and using that value as an index into a shading rate
+    palette.  That extension provides a separate shading rate image lookup
+    enable and palette for each viewport.  When a primitive is rasterized, the
+    implementation uses the enable and palette associated with the primitive's
+    viewport to determine the shading rate.
+
+    This extension decouples the shading rate image enables and palettes from
+    viewports.  The number of enables/palettes now comes from the
+    implementation-dependent constant SHADING_RATE_IMAGE_PALETTE_COUNT_NV.  When
+    SHADING_RATE_IMAGE_PER_PRIMITIVE_NV (added here) is enabled, the value of
+    the new gl_ShadingRateNV built-in output is used to select an enable and
+    palette to determine the shading rate.  Otherwise, the viewport number for
+    the primitive is used, as in NV_shading_rate_image.
+
+
+New Procedures and Functions
+
+    None.
+
+
+New Tokens
+
+    Accepted by the <cap> parameter of Enable, Disable, and IsEnabled and by the
+    <pname> parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv,
+    GetDoublev:
+
+        SHADING_RATE_IMAGE_PER_PRIMITIVE_NV             0x95B1
+
+    Accepted by the <pname> parameter of GetBooleanv, GetDoublev,
+    GetIntegerv, and GetFloatv:
+
+        SHADING_RATE_IMAGE_PALETTE_COUNT_NV             0x95B2
+
+
+Modifications to the OpenGL 4.6 Specification (Compatibility Profile)
+
+    Modify Section 14.3.1, Multisampling, as modified by the
+    NV_shading_rate_image extension.
+
+    (modify the introduction of the shading rate image functionality to decouple
+    shading rate image enables and viewports)
+
+    When using a shading rate image (Section 14.4.1), rasterization may produce
+    fragments covering multiple pixels, where each pixel is treated as a sample.
+    If any of the SHADING_RATE_IMAGE_NV enables is enabled, primitives will be
+    processed with multisample rasterization rules, regardless of the
+    MULTISAMPLE enable or the value of SAMPLE_BUFFERS.  ...
+
+
+    Modify Section 14.4.1, Shading Rate Image, as added by the
+    NV_shading_rate_image extension.
+
+    (rework the introduction of the shading rate image functionality to decouple
+    shading rate image enables and viewports)
+
+    Applications can specify the use of a shading rate that varies by (x,y)
+    location using a _shading rate image_.  For each primitive, the shading rate
+    image is enabled or disabled by selecting a single enable in an array of
+    enables whose size is given by the implementation-dependent constant
+    SHADING_RATE_IMAGE_PALETTE_COUNT_NV.  Use of a shading rate image is enabled
+    or disabled globally by using Enable or Disable with target
+    SHADING_RATE_IMAGE_NV.  A single shading rate image enable can be modified
+    by calling Enablei or Disablei with the constant SHADING_RATE_IMAGE_NV and
+    the index of the selected enable.  The shading rate image may only be used
+    with a framebuffer object.  When rendering to the default framebuffer, the
+    shading rate image enables are ignored and operations in this section are
+    disabled.  In the initial state, all shading rate image enables are
+    disabled.
+
+    The method used to select a single shading rate image enable used to process
+    each primitive is controlled by calling Enable or Disable with the target
+    SHADING_RATE_IMAGE_PER_PRIMITIVE_NV.  When enabled, a shading rate enable
+    used for a primitive is selected using an index taken from the value of the
+    built-in output gl_ShadingRateNV for the primitive's provoking vertex.  If
+    the value of gl_ShadingRateNV is negative or greater than or equal to the
+    number of shading rate enables, the shading rate used for a primitive is
+    undefined.  When SHADING_RATE_IMAGE_PER_PRIMITIVE_NV is disabled, a shading
+    rate enable is selected using the index of the viewport used for processing
+    the primitive.  In the initial state, SHADING_RATE_IMAGE_PER_PRIMITIVE_NV is
+    disabled.
+
+
+    (rework the introduction of the shading rate image functionality to decouple
+    shading rate image palettes and viewports)
+
+    A shading rate index is mapped to a _base shading rate_ using a lookup table
+    called the shading rate image palette.  There is a separate palette
+    associated with each shading rate image enable.  As with the shading rate
+    image enables, a single palette is selected for a primitive according to the
+    enable SHADING_RATE_IMAGE_PER_PRIMITIVE_NV.  The number of palettes and the
+    number of entries in each palette are given by the implementation-dependent
+    constants SHADING_RATE_IMAGE_PALETTE_COUNT_NV and
+    SHADING_RATE_IMAGE_PALETTE_SIZE_NV, respectively.  The base shading rate for
+    an (x,y) coordinate with a shading rate index of <i> will be given by entry
+    <i> of the selected palette.  If the shading rate index is greater than or
+    equal to the palette size, the results of the palette lookup are undefined.
+
+
+    (rework the introduction of ShadingRateImagePaletteNV to decouple shading
+    rate image palettes and viewports)
+
+      Shading rate image palettes are updated using the command
+
+        void ShadingRateImagePaletteNV(uint viewport, uint first, sizei count,
+                                       const enum *rates);
+
+      <viewport> specifies the number of the palette that should be updated.
+      [[ Note:  The formal parameter name <viewport> is a remnant of the
+      original NV_shading_rate_image extension, where palettes were tightly
+      coupled with viewports. ]]  <rates> is an array ...
+
+
+    (modify the discussion of ShadingRateImagePaletteNV errors to decouple
+    shading rate image palettes and viewports)
+
+        INVALID_VALUE is generated if <viewport> is greater than or equal to
+        SHADING_RATE_IMAGE_PALETTE_COUNT_NV.
+
+        INVALID_VALUE is generated if <first> plus <count> is greater than
+        SHADING_RATE_IMAGE_PALETTE_SIZE_NV.
+
+
+    (modify the discussion of GetShadingRateImagePaletteNV to decouple shading
+    rate image palettes and viewports)
+
+      Individual entries in the shading rate palette can be queried using the
+      command:
+
+        void GetShadingRateImagePaletteNV(uint viewport, uint entry,
+                                          enum *rate);
+
+      where <viewport> specifies the number of the palette to query and...
+      <entry> specifies the palette entry number.  [[ Note:  The formal
+      parameter name <viewport> is a remnant of the original
+      NV_shading_rate_image extension, where palettes were tightly coupled
+      with viewports. ]]  A single enum from Table X.1 is returned in <rate>.
+
+      Errors
+
+        INVALID_VALUE is generated if <viewport> is greater than or equal to
+        SHADING_RATE_IMAGE_PALETTE_COUNT_NV.
+
+        INVALID_VALUE is generated if <first> plus <count> is greater than
+        SHADING_RATE_IMAGE_PALETTE_SIZE_NV.
+
+
+    Modify Section 14.9.3, Multisample Fragment Operations, as edited by
+    NV_shading_rate_image.
+
+    (modify the discussion of the shading rate image multisample functionality
+    to decouple shading rate image enables and viewports)
+
+    ... This step is skipped if MULTISAMPLE is disabled or if the value of
+    SAMPLE_BUFFERS is not one, unless one or more of the SHADING_RATE_IMAGE_NV
+    enables are enabled.
+
+
+Dependencies on NV_mesh_shader
+
+    When NV_mesh_shader is supported, the "NV_primitive_shading_rate" GLSL
+    extension allows multi-view mesh shaders to write separate per-primitive
+    shading rates for each view using the built-in gl_ShadingRatePerViewNV[].
+    When gl_ShadingRatePerViewNV[] is used with
+    SHADING_RATE_IMAGE_PER_PRIMITIVE_NV enabled, a separate shading rate image
+    enable and palette will be used for each view.
+
+
+Additions to the AGL/GLX/WGL Specifications
+
+    None
+
+Errors
+
+    See the "Errors" sections for individual commands above.
+
+New State
+
+    Get Value                   Get Command        Type    Initial Value    Description                 Sec.    Attribute
+    ---------                   ---------------    ----    -------------    -----------                 ----    ---------
+    SHADING_RATE_IMAGE_         IsEnabled           B      FALSE            Use per-primitive shading   14.4.1  enable
+      PER_PRIMITIVE_NV                                                      rate to select shading
+                                                                            rate images/palettes
+
+New Implementation Dependent State
+
+                                                    Minimum
+    Get Value                Type  Get Command      Value   Description                   Sec.
+    ---------                ----- ---------------  ------- ------------------------      ------
+    SHADING_RATE_IMAGE_      Z+    GetIntegerv      16      Number of shading rate image  14.4.1
+      PALETTE_COUNT_NV                                      enables/palettes supported
+
+Issues
+
+    (1) How should we name this extension?
+
+      RESOLVED:  We are calling this extension "NV_primitive_shading_rate"
+      because it adds a new per-primitive shading rate to the variable-rate
+      shading functionality added by NV_shading_rate_image.
+
+    (2) Do we need to add queries like LAYER_PROVOKING_VERTEX and
+        VIEWPORT_INDEX_PROVOKING_VERTEX to determine the vertex used to obtain
+        the per-primitive shading rate for each primitive?
+
+      RESOLVED:  No -- we will always use the provoking vertex.  In the event
+      that this extension is standardized in the future with behavior that
+      diverges between implementations, such a query could be added as part of
+      that effort.
+
+Revision History
+
+    Revision 1 (pbrown)
+    - Internal revisions.
diff --git a/extensions/QCOM/QCOM_frame_extrapolation.txt b/extensions/QCOM/QCOM_frame_extrapolation.txt
new file mode 100644
index 0000000..b185217
--- /dev/null
+++ b/extensions/QCOM/QCOM_frame_extrapolation.txt
@@ -0,0 +1,133 @@
+Name
+
+    QCOM_frame_extrapolation
+
+Name Strings
+
+    GL_QCOM_frame_extrapolation
+
+Contributors
+
+    Sam Holmes
+    Jonathan Wicks
+
+Contacts
+
+    Jeff Leger  <jleger@qti.qualcomm.com>
+
+Status
+
+    Complete
+
+Version
+
+    Last Modified Date: November 30, 2020
+    Revision: 1.0
+
+Number
+
+    OpenGL ES Extension #333
+
+Dependencies
+
+    Requires OpenGL ES 2.0
+
+    This extension is written based on the wording of the OpenGL ES 3.2
+    Specification.
+
+Overview
+
+    Frame extrapolation is the process of producing a new, future frame
+    based on the contents of two previously rendered frames. It may be
+    used to produce high frame rate display updates without incurring the
+    full cost of traditional rendering at the higher framerate.
+
+    This extension adds support for frame extrapolation in OpenGL ES by
+    adding a function which takes three textures. The first two are used
+    in sequence as the source frames, from which the extrapolated frame
+    is derived. The extrapolated frame is stored in the third texture.
+
+New Procedures and Functions
+
+    void ExtrapolateTex2DQCOM(uint  src1,
+                              uint  src2,
+                              uint  output,
+                              float scaleFactor);
+
+Additions to Chapter 8 of the OpenGL ES 3.2 Specification
+
+    8.24 Frame Extrapolation
+
+    The command
+
+    void ExtrapolateTex2DQCOM(uint src1, uint src2,
+    uint output, float scaleFactor);
+
+    is used to produce an extrapolated frame based on the contents of
+    two previous frames. <src1> and <src2> specify the two previously
+    rendered frames, in order, which will be used as the basis of the
+    extrapolation. The three textures provided must have the same
+    dimensions and format. While <src1>, <src2> and <output> can
+    have multiple levels the implementation only reads from or writes
+    to the base level.
+
+    The texture contents provided in the two source textures represent
+    frame contents at two points in time. <scaleFactor> defines the amount
+    of time into the future the extrapolation is to target, based on the
+    delta in time between the two source textures.
+
+    For example, a value of 1.0 for <scaleFactor> will produce an
+    extrapolated frame that is as far into the future beyond 'src2'
+    as the time delta between 'src1' and 'src2'. A value of 0.5
+    for 'scaleFactor' targets a time that is a half step in the
+    future (compared to the full step delta between the two source frames).
+
+    Specifying an accurate scale factor is important for producing smooth
+    animation. An application that is displaying to the user alternating
+    rendered and extrapolated frames would use a scale factor of 0.5 so
+    that the extrapolated frame has contents which fall halfways between the
+    last rendered frame and the next rendered frame to come in the future.
+    Negative <scaleFactor> values produce frames targeting times before
+    that represented by the contents of <src2>.
+
+    Table 8.28: Compatible formats for <src1>, <src2> and <output>
+
+        Internal Format
+        ---------------
+        RGBA8
+        RGB8
+        R8
+        RGBA16F
+        RGB16F
+        RGBA32F
+        RGB32F
+
+Errors
+
+    INVALID_VALUE is generated if scaleFactor is equal to 0.
+
+    INVALID_OPERATION is generated if the texture formats of src1, src2 and
+    output are not identical.
+
+    INVALID_OPERATION is generated if the texture dimensions of src1, src2
+    and output are not identical.
+
+    INVALID_OPERATION is generated if the texture formats of src1, src2 and
+    output are not one of the formats listed in table 8.28.
+
+Issues
+
+    (1) Why is the extrapolation quality not defined?
+
+    Resolved: The intention of this specification is to extrapolate a new
+    texture based on the two input textures. Implementations should aim to
+    produce the highest quality extrapolation but since the results are
+    extrapolations there are no prescribed steps for how the textures must
+    be generated.
+
+Revision History
+
+      Rev.  Date        Author    Changes
+      ----  ----------  --------  -----------------------------------------
+      0.1   11/21/2019  Sam       Initial draft
+      1.0   11/30/2020  Tate      Official extension number
diff --git a/extensions/esext.php b/extensions/esext.php
index 3d80fe4..7e56ead 100644
--- a/extensions/esext.php
+++ b/extensions/esext.php
@@ -689,4 +689,8 @@
 </li>
 <li value=331><a href="extensions/QCOM/QCOM_texture_foveated2.txt">GL_QCOM_texture_foveated2</a>
 </li>
+<li value=332><a href="extensions/NV/NV_primitive_shading_rate.txt">GL_NV_primitive_shading_rate</a>
+</li>
+<li value=333><a href="extensions/QCOM/QCOM_frame_extrapolation.txt">QCOM_frame_extrapolation</a>
+</li>
 </ol>
diff --git a/extensions/glext.php b/extensions/glext.php
index 89618c1..1e2c0f1 100644
--- a/extensions/glext.php
+++ b/extensions/glext.php
@@ -1045,4 +1045,6 @@
 </li>
 <li value=553><a href="extensions/EXT/GLX_EXT_no_config_context.txt">GLX_EXT_no_config_context</a>
 </li>
+<li value=554><a href="extensions/NV/NV_primitive_shading_rate.txt">GL_NV_primitive_shading_rate</a>
+</li>
 </ol>
diff --git a/extensions/registry.py b/extensions/registry.py
index 86d395e..fd7502f 100644
--- a/extensions/registry.py
+++ b/extensions/registry.py
@@ -2560,6 +2560,7 @@
         'url' : 'extensions/EXT/EXT_texture_sRGB_R8.txt',
     },
     'GL_EXT_texture_sRGB_RG8' : {
+        'number' : 555,
         'esnumber' : 223,
         'flags' : { 'public' },
         'url' : 'extensions/EXT/EXT_texture_sRGB_RG8.txt',
@@ -3660,6 +3661,13 @@
         'supporters' : { 'NVIDIA' },
         'url' : 'extensions/NV/NV_primitive_restart.txt',
     },
+    'GL_NV_primitive_shading_rate' : {
+        'number' : 554,
+        'esnumber' : 332,
+        'flags' : { 'public' },
+        'supporters' : { 'NVIDIA' },
+        'url' : 'extensions/NV/NV_primitive_shading_rate.txt',
+    },
     'GL_NV_query_resource' : {
         'number' : 511,
         'flags' : { 'public' },
@@ -4528,6 +4536,11 @@
         'flags' : { 'public' },
         'url' : 'extensions/QCOM/QCOM_motion_estimation.txt',
     },
+    'QCOM_frame_extrapolation' : {
+        'esnumber' : 333,
+        'flags' : { 'public' },
+        'url' : 'extensions/QCOM/QCOM_frame_extrapolation.txt',
+    },
     'GL_QCOM_performance_monitor_global_mode' : {
         'esnumber' : 56,
         'flags' : { 'public' },
diff --git a/xml/gl.xml b/xml/gl.xml
index c573573..1319d48 100644
--- a/xml/gl.xml
+++ b/xml/gl.xml
@@ -9324,7 +9324,7 @@
         <enum value="0x8C07" name="GL_FACTOR_ALPHA_MODULATE_IMG"/>
         <enum value="0x8C08" name="GL_FRAGMENT_ALPHA_MODULATE_IMG"/>
         <enum value="0x8C09" name="GL_ADD_BLEND_IMG"/>
-        <enum value="0x8C0A" name="GL_SGX_BINARY_IMG"/>
+        <enum value="0x8C0A" name="GL_SGX_BINARY_IMG" group="ShaderBinaryFormat"/>
             <unused start="0x8C0B" end="0x8C0F" vendor="IMG"/>
     </enums>
 
@@ -9982,7 +9982,7 @@
         <enum value="0x8DF5" name="GL_HIGH_INT" group="PrecisionType"/>
         <enum value="0x8DF6" name="GL_UNSIGNED_INT_10_10_10_2_OES"/>
         <enum value="0x8DF7" name="GL_INT_10_10_10_2_OES"/>
-        <enum value="0x8DF8" name="GL_SHADER_BINARY_FORMATS"/>
+        <enum value="0x8DF8" name="GL_SHADER_BINARY_FORMATS" group="GetPName"/>
         <enum value="0x8DF9" name="GL_NUM_SHADER_BINARY_FORMATS" group="GetPName"/>
         <enum value="0x8DFA" name="GL_SHADER_COMPILER" group="GetPName"/>
         <enum value="0x8DFB" name="GL_MAX_VERTEX_UNIFORM_VECTORS" group="GetPName"/>
@@ -10319,7 +10319,7 @@
     </enums>
 
     <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="0x8F60" name="GL_MALI_SHADER_BINARY_ARM" group="ShaderBinaryFormat"/>
         <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"/>
@@ -10375,13 +10375,13 @@
             <unused start="0x8FB4" end="0x8FBA" vendor="QCOM"/>
         <enum value="0x8FBB" name="GL_GPU_DISJOINT_EXT"/>
             <unused start="0x8FBC" vendor="QCOM"/>
-        <enum value="0x8FBD" name="GL_SR8_EXT"/>
-        <enum value="0x8FBE" name="GL_SRG8_EXT"/>
+        <enum value="0x8FBD" name="GL_SR8_EXT" group="InternalFormat"/>
+        <enum value="0x8FBE" name="GL_SRG8_EXT" group="InternalFormat"/>
         <enum value="0x8FBF" name="GL_TEXTURE_FORMAT_SRGB_OVERRIDE_EXT"/>
     </enums>
 
     <enums namespace="GL" start="0x8FC0" end="0x8FDF" vendor="VIV" comment="For Frido Garritsen, bug 4526">
-        <enum value="0x8FC4" name="GL_SHADER_BINARY_VIV"/>
+        <enum value="0x8FC4" name="GL_SHADER_BINARY_VIV" group="ShaderBinaryFormat"/>
     </enums>
 
     <enums namespace="GL" start="0x8FE0" end="0x8FFF" vendor="NV" comment="For Pat Brown, bug 4935">
@@ -10964,7 +10964,7 @@
     </enums>
 
     <enums namespace="GL" start="0x9250" end="0x925F" vendor="DMP" comment="For Eisaku Ohbuchi via email">
-        <enum value="0x9250" name="GL_SHADER_BINARY_DMP"/>
+        <enum value="0x9250" name="GL_SHADER_BINARY_DMP" group="ShaderBinaryFormat"/>
         <enum value="0x9251" name="GL_SMAPHS30_PROGRAM_BINARY_DMP"/>
         <enum value="0x9252" name="GL_SMAPHS_PROGRAM_BINARY_DMP"/>
         <enum value="0x9253" name="GL_DMP_PROGRAM_BINARY_DMP"/>
@@ -10972,7 +10972,7 @@
     </enums>
 
     <enums namespace="GL" start="0x9260" end="0x926F" vendor="FJ" comment="Khronos bug 7486">
-        <enum value="0x9260" name="GL_GCCSO_SHADER_BINARY_FJ"/>
+        <enum value="0x9260" name="GL_GCCSO_SHADER_BINARY_FJ" group="ShaderBinaryFormat"/>
             <unused start="0x9261" end="0x926F" vendor="FJ"/>
     </enums>
 
@@ -11586,7 +11586,8 @@
         <enum value="0x95AE" name="GL_SHADING_RATE_SAMPLE_ORDER_DEFAULT_NV"/>
         <enum value="0x95AF" name="GL_SHADING_RATE_SAMPLE_ORDER_PIXEL_MAJOR_NV"/>
         <enum value="0x95B0" name="GL_SHADING_RATE_SAMPLE_ORDER_SAMPLE_MAJOR_NV"/>
-        <unused start="0x95B1" end="0x95B2" vendor="NV"/>
+        <enum value="0x95B1" name="GL_SHADING_RATE_IMAGE_PER_PRIMITIVE_NV" group="EnableCap,GetPName"/>
+        <enum value="0x95B2" name="GL_SHADING_RATE_IMAGE_PALETTE_COUNT_NV" group="GetPName"/>
         <enum value="0x95B3" name="GL_SEMAPHORE_TYPE_NV" group="SemaphoreParameterName"/>
         <enum value="0x95B4" name="GL_SEMAPHORE_TYPE_BINARY_NV" group="SemaphoreParameterName"/>
         <enum value="0x95B5" name="GL_SEMAPHORE_TYPE_TIMELINE_NV" group="SemaphoreParameterName"/>
@@ -19132,7 +19133,7 @@
             <param><ptype>GLuint</ptype> <name>monitor</name></param>
             <param><ptype>GLenum</ptype> <name>pname</name></param>
             <param><ptype>GLsizei</ptype> <name>dataSize</name></param>
-            <param len="dataSize"><ptype>GLuint</ptype> *<name>data</name></param>
+            <param len="dataSize / 4"><ptype>GLuint</ptype> *<name>data</name></param>
             <param len="1"><ptype>GLint</ptype> *<name>bytesWritten</name></param>
         </command>
         <command>
@@ -20745,7 +20746,7 @@
             <param group="MapTarget"><ptype>GLenum</ptype> <name>target</name></param>
             <param group="MapQuery"><ptype>GLenum</ptype> <name>query</name></param>
             <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
-            <param len="COMPSIZE(bufSize)"><ptype>GLdouble</ptype> *<name>v</name></param>
+            <param len="bufSize / 8"><ptype>GLdouble</ptype> *<name>v</name></param>
         </command>
         <command>
             <proto>void <name>glGetnMapfv</name></proto>
@@ -20803,7 +20804,7 @@
             <proto>void <name>glGetnPixelMapfvARB</name></proto>
             <param group="PixelMap"><ptype>GLenum</ptype> <name>map</name></param>
             <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
-            <param len="COMPSIZE(bufSize)"><ptype>GLfloat</ptype> *<name>values</name></param>
+            <param len="bufSize / 4"><ptype>GLfloat</ptype> *<name>values</name></param>
         </command>
         <command>
             <proto>void <name>glGetnPixelMapuiv</name></proto>
@@ -20884,35 +20885,35 @@
             <param class="program"><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>GLdouble</ptype> *<name>params</name></param>
+            <param len="bufSize / 8"><ptype>GLdouble</ptype> *<name>params</name></param>
         </command>
         <command>
             <proto>void <name>glGetnUniformdvARB</name></proto>
             <param class="program"><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>GLdouble</ptype> *<name>params</name></param>
+            <param len="bufSize / 8"><ptype>GLdouble</ptype> *<name>params</name></param>
         </command>
         <command>
             <proto>void <name>glGetnUniformfv</name></proto>
             <param class="program"><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>
+            <param len="bufSize / 4"><ptype>GLfloat</ptype> *<name>params</name></param>
         </command>
         <command>
             <proto>void <name>glGetnUniformfvARB</name></proto>
             <param class="program"><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>
+            <param len="bufSize / 4"><ptype>GLfloat</ptype> *<name>params</name></param>
         </command>
         <command>
             <proto>void <name>glGetnUniformfvEXT</name></proto>
             <param class="program"><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>
+            <param len="bufSize / 4"><ptype>GLfloat</ptype> *<name>params</name></param>
             <alias name="glGetnUniformfv"/>
         </command>
         <command>
@@ -20920,7 +20921,7 @@
             <param class="program"><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>
+            <param len="bufSize / 4"><ptype>GLfloat</ptype> *<name>params</name></param>
             <alias name="glGetnUniformfv"/>
         </command>
         <command>
@@ -20928,28 +20929,28 @@
             <param class="program"><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>GLint64</ptype> *<name>params</name></param>
+            <param len="bufSize / 8"><ptype>GLint64</ptype> *<name>params</name></param>
         </command>
         <command>
             <proto>void <name>glGetnUniformiv</name></proto>
             <param class="program"><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>
+            <param len="bufSize / 4"><ptype>GLint</ptype> *<name>params</name></param>
         </command>
         <command>
             <proto>void <name>glGetnUniformivARB</name></proto>
             <param class="program"><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>
+            <param len="bufSize / 4"><ptype>GLint</ptype> *<name>params</name></param>
         </command>
         <command>
             <proto>void <name>glGetnUniformivEXT</name></proto>
             <param class="program"><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>
+            <param len="bufSize / 4"><ptype>GLint</ptype> *<name>params</name></param>
             <alias name="glGetnUniformiv"/>
         </command>
         <command>
@@ -20957,7 +20958,7 @@
             <param class="program"><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>
+            <param len="bufSize / 4"><ptype>GLint</ptype> *<name>params</name></param>
             <alias name="glGetnUniformiv"/>
         </command>
         <command>
@@ -20965,28 +20966,28 @@
             <param class="program"><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>GLuint64</ptype> *<name>params</name></param>
+            <param len="bufSize / 8"><ptype>GLuint64</ptype> *<name>params</name></param>
         </command>
         <command>
             <proto>void <name>glGetnUniformuiv</name></proto>
             <param class="program"><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>GLuint</ptype> *<name>params</name></param>
+            <param len="bufSize / 4"><ptype>GLuint</ptype> *<name>params</name></param>
         </command>
         <command>
             <proto>void <name>glGetnUniformuivARB</name></proto>
             <param class="program"><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>GLuint</ptype> *<name>params</name></param>
+            <param len="bufSize / 4"><ptype>GLuint</ptype> *<name>params</name></param>
         </command>
         <command>
             <proto>void <name>glGetnUniformuivKHR</name></proto>
             <param class="program"><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>GLuint</ptype> *<name>params</name></param>
+            <param len="bufSize / 4"><ptype>GLuint</ptype> *<name>params</name></param>
             <alias name="glGetnUniformuiv"/>
         </command>
         <command>
@@ -28915,6 +28916,13 @@
             <param class="texture" group="Texture"><ptype>GLuint</ptype> <name>mask</name></param>
         </command>
         <command>
+            <proto>void <name>glExtrapolateTex2DQCOM</name></proto>
+            <param class="texture"><ptype>GLuint</ptype> <name>src1</name></param>
+            <param class="texture"><ptype>GLuint</ptype> <name>src2</name></param>
+            <param class="texture"><ptype>GLuint</ptype> <name>output</name></param>
+            <param><ptype>GLfloat</ptype> <name>scaleFactor</name></param>
+        </command>
+        <command>
             <proto>void <name>glTexFilterFuncSGIS</name></proto>
             <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
             <param group="TextureFilterSGIS"><ptype>GLenum</ptype> <name>filter</name></param>
@@ -46183,7 +46191,6 @@
                 <command name="glProgramUniform2uivEXT"/>
                 <command name="glProgramUniform3uivEXT"/>
                 <command name="glProgramUniform4uivEXT"/>
-                <command name="glProgramUniformMatrix4fvEXT"/>
                 <command name="glProgramUniformMatrix2x3fvEXT"/>
                 <command name="glProgramUniformMatrix3x2fvEXT"/>
                 <command name="glProgramUniformMatrix2x4fvEXT"/>
@@ -46809,7 +46816,7 @@
                 <enum name="GL_SR8_EXT"/>
             </require>
         </extension>
-        <extension name="GL_EXT_texture_sRGB_RG8" supported="gles2">
+        <extension name="GL_EXT_texture_sRGB_RG8" supported="gles2|gl|glcore">
             <require>
                 <enum name="GL_SRG8_EXT"/>
             </require>
@@ -49202,6 +49209,12 @@
                 <command name="glPrimitiveRestartIndexNV"/>
             </require>
         </extension>
+        <extension name="GL_NV_primitive_shading_rate" supported="gl|glcore|gles2">
+            <require>
+                <enum name="GL_SHADING_RATE_IMAGE_PER_PRIMITIVE_NV"/>
+                <enum name="GL_SHADING_RATE_IMAGE_PALETTE_COUNT_NV"/>
+            </require>
+        </extension>
         <extension name="GL_NV_query_resource" supported="gl">
             <require>
                 <enum name="GL_QUERY_RESOURCE_TYPE_VIDMEM_ALLOC_NV"/>
@@ -51094,6 +51107,11 @@
                 <command name="glTexEstimateMotionRegionsQCOM"/>
             </require>
         </extension>
+        <extension name="GL_QCOM_frame_extrapolation" supported="gles2">
+            <require>
+                <command name="glExtrapolateTex2DQCOM"/>
+            </require>
+        </extension>
         <extension name="GL_QCOM_texture_foveated" supported="gles2">
             <require>
                 <enum name="GL_FOVEATION_ENABLE_BIT_QCOM"/>
