Add QCOM_render_shared_exponent

Allows rendering to GL_RGB9_E5
diff --git a/extensions/QCOM/QCOM_render_shared_exponent.txt b/extensions/QCOM/QCOM_render_shared_exponent.txt
new file mode 100644
index 0000000..3f61d1b
--- /dev/null
+++ b/extensions/QCOM/QCOM_render_shared_exponent.txt
@@ -0,0 +1,117 @@
+Name
+
+    QCOM_render_shared_exponent
+
+Name Strings
+
+    GL_QCOM_render_shared_exponent
+
+Contributors
+
+    Ashish Mathur
+    Tate Hornbeck
+
+Contact
+
+    Jeff Leger - jleger 'at' qti.qualcomm.com
+
+Status
+
+    Final
+
+Version
+
+    Last Modified Date: Novemeber 24, 2020
+    Revision:  #3
+
+Number
+
+    OpenGL ES Extension #334
+
+Dependencies
+
+    OpenGL ES 3.0 is required. This extension is written against OpenGL ES 3.2.
+
+Overview
+
+    OpenGL ES 3.2 supports a packed, shared exponent floating format RGB9_E5
+    which is not color-renderable.
+
+    This extension enables the packed, shared exponent floating type format RGB9_E5
+    to be color-renderable using framebuffer objects.
+
+New Procedures and Functions
+
+    None
+
+New Tokens
+
+    Accepted by the <internalFormat> parameter of RenderbufferStorage:
+    GL_RGB9_E5                        0x8C3D
+
+Additions to Chapter 8 of the OpenGL  ES 3.2 Specification
+(Textures and Samplers)
+
+    Modification in Table 8.10, p.163, 164
+    Convert the spaces under 'CR' and 'Req. rend.' to a 'check' for the
+    internal format RGB9_E5.
+
+    Insert at the top (first) row in Table 8.14, p. 172.
+    Destination     | Source   | Source     | Source    | Source     | Effective
+    Internal Format | Red Size | Green Size | Blue Size | Alpha Size | Internal Format
+    ----------------|----------|------------|-----------|------------|----------------
+    any sized       |  1<=R<=9 |  1<=G<=9   |  1<=B<=9  |     A=0    | RGB9_E5
+
+Additions to Chapter 9 of the OpenGL ES 3.2 Specification
+(Framebuffers and Framebuffer Objects)
+
+    Modification in section 9.2.5 Required Renderbuffer Formats p. 238
+    Change the following bullet point from:
+    • For formats RGBA16F, R32F, RG32F and RGBA32F, one sample
+    to
+    • For formats RGB9_E5, RGBA16F, R32F, RG32F and RGBA32F one sample
+
+    Modifications in section 9.6 Conversion to Framebuffer-Attachable Image Components p. 255
+    Add the following sentence at the end of the section:
+    "If the format is RGB9E5 then the R, G, and B components, regardless of component masking
+     as described in section 15.2.2, may participate in the encoding process with the method
+     described in section 8.5.2."
+
+    Modifications in section 9.7 Conversion to RGBA Values p. 255
+    Add the following sentence at the end of the section:
+    "If the format is RGB9E5 then the R, G, and B components, regardless of component masking
+     as described in section 15.2.2, may participate in the decoding process with the method
+     described in section 8.22."
+
+Additions to Chapter 20 of the OpenGL ES 3.2 Specification
+(Context State Queries)
+
+    Modification in section 20.3.1 Internal Format Query Parameters p. 444
+    In the bullet point NUM_SAMPLE_COUNTS change the following sub bullet point from:
+    – If internalformat is RGBA16F, R32F, RG32F, or RGBA32F, zero may be returned.
+    to
+    – If internalformat is RGB9_E5, RGBA16F, R32F, RG32F, or RGBA32F, zero may be returned.
+
+    In the bullet point SAMPLES change the following sub bullet point from:
+    * A value less than or equal to the value of MAX_SAMPLES, if internalformat is
+      RGBA16F, R32F, RG32F, or RGBA32F.
+    to
+    * A value less than or equal to the value of MAX_SAMPLES, if internalformat is
+      RGB9_E5, RGBA16F, R32F, RG32F, or RGBA32F.
+
+Errors
+
+    No new errors.
+
+Issues
+
+    None
+
+Revision History:
+
+   Revision: 1 2020-07-25 (asmathur)
+        initial revision
+   Revision: 2 2020-10-11 (asmathur)
+        version 2
+   Revision: 3 2020-11-24 (asmathur)
+        version 3
diff --git a/extensions/esext.php b/extensions/esext.php
index 7e56ead..6cfb60a 100644
--- a/extensions/esext.php
+++ b/extensions/esext.php
@@ -691,6 +691,8 @@
 </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 value=333><a href="extensions/QCOM/QCOM_frame_extrapolation.txt">GL_QCOM_frame_extrapolation</a>
+</li>
+<li value=334><a href="extensions/QCOM/QCOM_render_shared_exponent.txt">GL_QCOM_render_shared_exponent</a>
 </li>
 </ol>
diff --git a/extensions/registry.py b/extensions/registry.py
index fd7502f..ff8d81a 100644
--- a/extensions/registry.py
+++ b/extensions/registry.py
@@ -4536,11 +4536,16 @@
         'flags' : { 'public' },
         'url' : 'extensions/QCOM/QCOM_motion_estimation.txt',
     },
-    'QCOM_frame_extrapolation' : {
+    'GL_QCOM_frame_extrapolation' : {
         'esnumber' : 333,
         'flags' : { 'public' },
         'url' : 'extensions/QCOM/QCOM_frame_extrapolation.txt',
     },
+    'GL_QCOM_render_shared_exponent' : {
+        'esnumber' : 334,
+        'flags' : { 'public' },
+        'url' : 'extensions/QCOM/QCOM_render_shared_exponent.txt',
+    },
     'GL_QCOM_performance_monitor_global_mode' : {
         'esnumber' : 56,
         'flags' : { 'public' },
diff --git a/xml/gl.xml b/xml/gl.xml
index fab80b1..496a714 100644
--- a/xml/gl.xml
+++ b/xml/gl.xml
@@ -51110,6 +51110,8 @@
                 <command name="glExtrapolateTex2DQCOM"/>
             </require>
         </extension>
+        <extension name="GL_QCOM_render_shared_exponent" supported="gles2">
+        </extension>
         <extension name="GL_QCOM_texture_foveated" supported="gles2">
             <require>
                 <enum name="GL_FOVEATION_ENABLE_BIT_QCOM"/>