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