Merge pull request #466 from tate-hornbeck/999e5
Add QCOM_render_shared_exponent
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 f58d269..a61e6d7 100644
--- a/xml/gl.xml
+++ b/xml/gl.xml
@@ -46387,6 +46387,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"/>