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

    Relaxation of INVALID_OPERATION errors
    --------------------------------------

    CopyTex[Sub]Image* now accepts RGB9_E5 for <internalformat>

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
