Name

    EXT_compressed_ETC1_RGB8_sub_texture

Name Strings

    GL_EXT_compressed_ETC1_RGB8_sub_texture

Contact

    Zeeshan Anwar (z.anwar 'at' samsung.com)

Contributors

    Jan-Harald Fredriksen (jan-harald.fredriksen 'at' arm.com)
    Mythri Venugopal (mythri.venugopal 'at' samsung.com)

Notice

    None

IP Status

    See Ericsson's "IP Statement"

Status

    draft

Version

    0.3

Number

    OpenGL ES Extension #188

Dependencies

    OpenGL ES 1.1 is required.

    OES_compressed_ETC1_RGB8_texture is required.

    This extension is written based on the wording of the OpenGL ES 1.1
    and 3.0 specification and the OES_compressed_ETC1_RGB8_texture 
    extension.

    This extension borrows concepts and function names from the
    OES_compressed_ETC1_RGB8_texture.

Overview

    The goal of this extension is to enable support for subimage 
    updates of textures using the Ericsson Texture Compression (ETC1) 
    format.The OES_compressed_ETC1_RGB8_texture specification does not 
    allow subimage updates using glCompressedTexSubImage2D, however, 
    since this compressed format is easily edited along 4 x 4 texel
    boundaries, this restriction can be relaxed.

    glCompressedTexSubImage2D can be used to update part of a compressed
    texture atlas, e.g. fonts, to save bandwidth and improve efficiency.

Issues

    None.

New Procedures and Functions

    None

New Tokens

    None

Interactions with OpenGL ES 3.0

    Modify the paragraph 3 in p.146, If internalformat is one of the ...

    "If internalformat is one of the ETC2/EAC formats described in 
*    table 3.19 or ETC1_RGB8_OES, the compressed image data is stored 
*    using one of the ETC2/EAC compressed texture image encodings 
*    (see appendix C) or the ETC1_RGB8_OES compressed texture image 
*    encoding. The ETC2/EAC and or ETC1_RGB8_OES texture compression 
*    algorithms supports only two-dimensional images. If internalformat
*    is an ETC2/EAC format or ETC1_RGB8_OES, CompressedTexImage3D will 
*    generate an INVALID_OPERATION error if target is not 
*    TEXTURE_2D_ARRAY."

    Modify penultimate paragraph, p.147, The contents of any 4 x 4 ...

    "The contents of any 4 x 4 block of texels of an ETC2/EAC compressed
*    texture image or ETC1_RGB8_OES compressed texture image that does 
     not intersect the area being modified are preserved during valid
     CompressedTexSubImage* calls."

Errors

    Modify Errors section of OES_compressed_ETC1_RGB8_texture:

*    "INVALID_OPERATION is generated by TexSubImage2D and 
      CopyTexSubImage2D if the texture image <level> bound to <target> 
      has internal format ETC1_RGB8_OES."

    Add a new section under 3.7.3 (in the ES1.1 spec):

+    "An INVALID_OPERATION error is generated [by CompressedTexSubImage2D]
+     if <format> is ETC1_RGB8_OES and any of the following conditions
+     occurs:
+         - <width> is not a multiple of four, and <width> plus <xoffset>
+           is not equal to the texture width;
+         - <height> is not a multiple of four, and <height> plus <yoffset>
+           is not equal to the texture height; or
+         - <xoffset> or <yoffset> is not a multiple of four.

Revision History

#1   (Zeeshan Anwar, May, 2014)         - Initial draft.
#2   (Mythri Venugopal, June, 2014)     - Modified Errors and added interactions
                                          with OpenGL ES 3.0
#3   (Jan-Harald Fredriksen, June, 2014)- Expanded error section. Formatting.
