• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Name
2
3    EXT_EGL_image_storage_compression
4
5Name Strings
6
7    GL_EXT_EGL_image_storage_compression
8
9Contact
10
11    Jan-Harald Fredriksen (jan-harald.fredriksen 'at' arm.com)
12
13Contributors
14
15    Jan-Harald Fredriksen, Arm
16    Lisa Wu, Arm
17    Anton Berko, Arm
18    Laurie Hedge, Imagination Technologies
19
20Status
21
22    Complete
23
24Version
25
26    Version 1 - November 15, 2021
27
28Number
29
30    OpenGL ES Extension #337
31
32Dependencies
33
34    Requires OpenGL ES 3.0.
35
36    Requires GL_EXT_EGL_image_storage.
37    This extension is written based on the wording of the OpenGL ES 3.2
38    Specification.
39
40Overview
41
42    Applications may wish to take advantage of framebuffer compression. Some
43    platforms may support framebuffer compression at fixed bitrates. Such
44    compression algorithms generally produce results that are visually lossless,
45    but the results are typically not bit-exact when compared to a non-compressed
46    result.
47
48    This extension enables applications to specify a texture by taking all
49    properties from a fixed-rate compressed EGLImage.
50
51Glossary
52
53    Please see the EGL_KHR_image specification for a list of terms
54    used by this specification.
55
56New Types
57
58    None.
59
60New Procedures and Functions
61
62    None.
63
64New Tokens
65
66    New attributes accepted by the <attrib_list> argument of
67    EGLImageTargetTexStorageEXT:
68        SURFACE_COMPRESSION_EXT                     0x96C0
69
70    Accepted as attribute values for SURFACE_COMPRESSION_EXT by
71    EGLImageTargetTexStorageEXT:
72        SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT     0x96C1
73        SURFACE_COMPRESSION_FIXED_RATE_DEFAULT_EXT  0x96C2
74
75Additions to Chapter 8 of the OpenGL ES 3.2 Specification (Textures and
76Samplers)
77
78    - (8.18, p. 210) Modify the final paragraph of the description of the
79      EGLImageTargetTexStorageEXT command:
80
81    <attrib_list> specifies a list of attributes for the texture.
82
83    All attribute names in <attrib_list> are immediately followed by the
84    corresponding value. The list is terminated with GL_NONE. If an
85    attribute is not specified in <attrib_list>, then the default value
86    is used.
87
88    <attrib_list> may be NULL or empty (first attribute is GL_NONE), in which
89    case all attributes assume their default value as described below.
90
91    Attributes that can be specified in <attrib_list> include
92    SURFACE_COMPRESSION_EXT.
93
94    SURFACE_COMPRESSION_EXT specifies whether fixed-rate compression
95    is enabled for <image>.
96    If its value is SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT, then <image>
97    must not use fixed-rate compression.
98    In this case, if <image> refers to a compressed image, the error
99    INVALID_OPERATION is generated.
100
101    If its value is SURFACE_COMPRESSION_FIXED_RATE_DEFAULT_EXT, then
102    <image> may use fixed-rate compression.
103
104    The default value of SURFACE_COMPRESSION_EXT is
105    SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT.
106
107    If <attrib_list> is neither NULL nor a value described above,
108    the error INVALID_VALUE is generated.
109
110    Fixed-rate compression is done in an implementation-defined manner and may
111    be applied at block granularity. In that case, a write to an individual
112    texel may modify the value of other texels in the same block.
113
114    Modify section 8.23, "Texture Image Loads and Stores":
115
116    Add to the list of errors for BindImageTexture:
117
118    "An INVALID_VALUE error is generated if the value of
119    SURFACE_COMPRESSION_EXT for <texture> is not
120    SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT."
121
122    Add to the bullet list of conditions for when image access is considered invalid:
123
124    " * the value of SURFACE_COMPRESSION_EXT for the texture is not
125        SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT;"
126
127Issues
128
129    1. Can fixed-rate compressed images be imported using EGLImageTargetTexture2DOES?
130
131    RESOLVED. No. We only allow fixed-rate compression for immutable textures.
132
133    2. Do we need to specify compression rates in this extension?
134
135    RESOLVED. No. The source EGLImage object must have been allocated elsewhere,
136    and the compression ratio must have been decided at that time.
137
138Revision History
139    Version 1, 2021/11/15
140      - Internal revisions
141