• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Name
2
3    AMD_compressed_ATC_texture
4
5Name Strings
6
7    GL_AMD_compressed_ATC_texture
8
9Contributors
10
11    Aaftab Munshi
12    Benj Lipchak
13
14Contact
15
16    Maurice Ribble, Qualcomm (mribble 'at' qualcomm.com)
17
18IP Status
19
20    Please contact AMD regarding any intellectual property questions/issues
21    associated with this extension.
22
23Status
24
25    Complete.
26
27Version
28
29    Last Modified Date: February 26, 2008
30    Revision: 7
31
32Number
33
34    OpenGL ES Extension #40
35
36Dependencies
37
38    Written based on the wording of the OpenGL ES 1.1 specification.
39
40Overview
41
42    This extension enables support for ATC compressed texture formats.  ATC is
43    AMD's proprietary compression algorithm for compressing textures for
44    handheld devices to save on power consumption, memory footprint and
45    bandwidth.
46
47    Three compression formats are introduced:
48
49    - A compression format for RGB textures.
50    - A compression format for RGBA textures using explicit alpha encoding.
51    - A compression format for RGBA textures using interpolated alpha encoding.
52
53New Procedures and Functions
54
55    None.
56
57New Tokens
58
59    Accepted by the <internalformat> parameter of CompressedTexImage2D and
60    CompressedTexImage3DOES.
61
62        ATC_RGB_AMD                        0x8C92
63        ATC_RGBA_EXPLICIT_ALPHA_AMD        0x8C93
64        ATC_RGBA_INTERPOLATED_ALPHA_AMD    0x87EE
65
66Additions to Chapter 2 of the OpenGL 1.3 Specification (OpenGL Operation)
67
68    None.
69
70Additions to Chapter 3 of the OpenGL 1.3 Specification (Rasterization)
71
72    Add to Table 3.17:  Specific Compressed Internal Formats
73
74        Compressed Internal Format         Base Internal Format
75        ===============================    ====================
76        ATC_RGB_AMD                        RGB
77        ATC_RGBA_EXPLICIT_ALPHA_AMD        RGBA
78        ATC_RGBA_INTERPOLATED_ALPHA_AMD    RGBA
79
80
81    Add to Section 3.8.3, Alternate Image Specification
82
83    The details of these formats is not disclosed, so refer to AMD's
84    Compressonator tool in order to encode your textures offline:
85    http://ati.amd.com/developer/compressonator.html
86
87    OpenGL ES requires that all mip-levels have to be specified when
88    CompressedTexImage2D is called to load a palettized texture.  In this case
89    the "level" value is either 0 or a negative number to indicate the number of
90    mip-levels.  This rule is not followed when loading an ATC texture.  The
91    "level" number in this case represents the actual mip-level number,
92    so a negative number will raise an error.
93
94    Compressed texture images stored using the ATC compressed image formats are
95    represented as a collection of 4x4 texel blocks.
96
97    ATC_RGB_AMD Format
98    ==================
99
100    This format compresses blocks of source texels down to 4 bits per texel.
101    Assuming 8-bit component source texels, this represents a 8:1 compression
102    ratio.  This is the best format to use when no alpha channel is needed.
103
104    ATC_RGBA_EXPLICIT_ALPHA_AMD Format
105    ==================================
106
107    This format compresses blocks of source texels down to 8 bits per texel.
108    Assuming 8-bit component source texels, this represents a 4:1 compression
109    ratio.  This is generally the best format to use when alpha transitions are
110    sharp.
111
112    ATC_RGBA_INTERPOLATED_ALPHA_AMD Format
113    ======================================
114
115    This format compresses blocks of source texels down to 8 bits per texel.
116    Assuming 8-bit component source texels, this represents a 4:1 compression
117    ratio.  This is generally the best format to use when alpha transitions are
118    gradient.
119
120    The size in bytes of a compressed ATC_RGB_AMD image is:
121
122    ((width_in_texels+3)/4) * ((height_in_texels+3)/4) * 8
123
124    The size in bytes of a compressed ATC_RGBA_EXPLICIT_ALPHA_AMD or
125    ATC_RGBA_INTERPOLATED_ALPHA_AMD image is:
126
127    ((width_in_texels+3)/4) * ((height_in_texels+3)/4) * 16
128
129Errors
130
131    INVALID_OPERATION is generated by TexImage2D, TexSubImage2D,
132    CompressedTexSubImage2D, or CopyTexSubImage2D if <internalformat> or
133    <format> is ATC_RGB_AMD, ATC_RGBA_EXPLICIT_ALPHA_AMD, or
134    ATC_RGBA_INTERPOLATED_ALPHA_AMD.
135
136New State
137
138    The queries for NUM_COMPRESSED_TEXTURE_FORMATS and
139    COMPRESSED_TEXTURE_FORMATS include ATC_RGB_AMD, ATC_RGBA_EXPLICIT_ALPHA_AMD,
140    and ATC_RGBA_INTERPOLATED_ALPHA_AMD.
141
142Revision History
143
144    09/06/2012    Maurice Ribble   Update contact and add block size data.
145    02/26/2008    Benj Lipchak     Throw INVALID_OPERATION on subimage updates.
146    10/24/2007    Benj Lipchak     Add interpolated alpha RGBA format.
147    09/24/2007    Jon Leech        Assign extension number.
148    09/05/2007    Benj Lipchak     Cosmetic changes.
149    08/01/2007    Benj Lipchak     Publication readiness.
150    07/07/2005    Aaftab Munshi    Fixed typos.
151    09/15/2004    Aaftab Munshi    Created the document.
152