1Name 2 3 EXT_texture_norm16 4 5Name Strings 6 7 GL_EXT_texture_norm16 8 9Contributors 10 11 Contributors to EXT_texture_snorm 12 Daniel Koch, NVIDIA 13 Jan-Harald Fredriksen, ARM 14 15Contact 16 17 Mathias Heyer, NVIDIA (mheyer [at] nvidia.com) 18 19Status 20 21 Complete 22 23Version 24 25 Last Modified Date: 2014-10-24 26 Revision: 5 27 28Number 29 30 OpenGL ES Extension #207 31 32Dependencies 33 34 OpenGL ES 3.1 is required. 35 36 This extension is written against the OpenGL ES 3.1 (June 4, 2014) 37 specification. 38 39 This extension interacts with EXT_texture_buffer. 40 41 This extension interacts with EXT_texture_view. 42 43 This extension interacts with OES_texture_storage_multisample_2d_array. 44 45 This extension interacts with EXT_copy_image. 46 47 This extension interacts with EXT_texture_compression_s3tc. 48 49 This extension interacts with EXT_texture_compression_rgtc. 50 51 This extension interacts with NV_texture_compression_s3tc. 52 53 This extension interacts with NV_sRGB_formats. 54 55Overview 56 57 OpenGL ES 3.1 supports 8-bit (signed) normalized textures. 58 59 This extension provides a set of new 16 bit signed normalized and 60 unsigned normalized fixed point texture, renderbuffer and 61 texture buffer formats. 62 63 64New Procedures and Functions 65 66 None 67 68New Tokens 69 70 71 Accepted by the <internalFormat> parameter of TexImage2D,TexImage3D, 72 TexStorage2D, TexStorage3D and TexStorage2DMultisample, 73 TexStorage3DMultisampleOES, TexBufferEXT, TexBufferRangeEXT, 74 TextureViewEXT, RenderbufferStorage and RenderbufferStorageMultisample: 75 76 R16_EXT 0x822A 77 RG16_EXT 0x822C 78 RGBA16_EXT 0x805B 79 80 Accepted by the <internalFormat> parameter of TexImage2D,TexImage3D, 81 TexStorage2D, TexStorage3D, TexStorage2DMultisample, 82 TexStorage3DMultisampleOES and TextureViewEXT: 83 84 RGB16_EXT 0x8054 85 86 R16_SNORM_EXT 0x8F98 87 RG16_SNORM_EXT 0x8F99 88 RGB16_SNORM_EXT 0x8F9A 89 RGBA16_SNORM_EXT 0x8F9B 90 91 92Additions to Chapter 8 of the OpenGL ES 3.1 Specification 93(Textures and Samplers) 94 95 Add to Table 4.X.1 (introduced by EXT_copy_image) "Compatible internal 96 Formats for copying between compressed and uncompressed...." 97 98 ------------------------------------------------------------------------------ 99 | 64-bit | RGBA16_EXT, | COMPRESSED_RGB_S3TC_DXT1_EXT, | 100 | | RGBA16_SNORM_EXT | COMPRESSED_SRGB_S3TC_DXT1_NV, | 101 | | | COMPRESSED_RGBA_S3TC_DXT1_EXT, | 102 | | | COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV, | 103 | | | COMPRESSED_RED_RGTC1_EXT, | 104 | | | COMPRESSED_SIGNED_RED_RGTC1_EXT, | 105 | | | COMPRESSED_RGB8_ETC2, | 106 | | | COMPRESSED_SRGB8_ETC2, | 107 | | | COMPRESSED_R11_EAC, | 108 | | | COMPRESSED_SIGNED_R11_EAC, | 109 | | | COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2, | 110 | | | COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 | 111 ------------------------------------------------------------------------------ 112 113 Add a row to Table 8.2 "Valid combinations of format, type and sized 114 internal formats": 115 116 Format Type External Bytes Internal Format 117 per Pixel 118 --------------- --------------- --------------- --------------- 119 RED UNSIGNED_SHORT 2 R16_EXT 120 RG UNSIGNED_SHORT 4 RG16_EXT 121 RGB UNSIGNED_SHORT 6 RGB16_EXT 122 RGBA UNSIGNED_SHORT 8 RGBA16_EXT 123 124 RED SHORT 2 R16_SNORM_EXT 125 RG SHORT 4 RG16_SNORM_EXT 126 RGB SHORT 6 RGB16_SNORM_EXT 127 RGBA SHORT 8 RGBA16_SNORM_EXT 128 129 130 Add to Table 8.13 "Correspondence of sized internal formats to base 131 internal formats,...": 132 133 Sized Base Bits/component CR TF Req. Req. 134 Internal Internal S are shared bits rend. tex. 135 Format Format R G B A S 136 ------------ ----------- ---- ---- ---- --- ---- --- --- ---- --- 137 R16_EXT RED 16 X X X X 138 RG16_EXT RG 16 16 X X X X 139 RGB16_EXT RGB 16 16 16 - X - X 140 RGBA16_EXT RGBA 16 16 16 16 X X X X 141 142 R16_SNORM_EXT RED s16 - X - X 143 RG16_SNORM_EXT RG s16 s16 - X - X 144 RGB16_SNORM_EXT RGB s16 s16 s16 - X - X 145 RGBA16_SNORM_EXT RGBA s16 s16 s16 s16 - X - X 146 147 Add to Table 8.15: "ReadPixels format and type used during CopyTex*." 148 149 Read Buffer Format format type 150 ------------------------------------- ------ -------------- 151 16bit Unsigned Normalized Fixed-point RGBA UNSIGNED_SHORT 152 153 154 Add to Table 8.X.2 "Compatible internal formats for TextureViewEXT. ..." 155 156 -------------------------------------------------------------------------- 157 | Class | Internal formats | 158 -------------------------------------------------------------------------- 159 | VIEW_CLASS_64_BITS | RGBA16_EXT, RGBA16_SNORM_EXT | 160 -------------------------------------------------------------------------- 161 | VIEW_CLASS_48_BITS | RGB16_EXT, RGB16_SNORM_EXT | 162 -------------------------------------------------------------------------- 163 | VIEW_CLASS_32_BITS | RG16_EXT, RG16_SNORM_EXT | 164 -------------------------------------------------------------------------- 165 | VIEW_CLASS_16_BITS | R16_EXT, R16_SNORM_EXT | 166 -------------------------------------------------------------------------- 167 168 (If EXT_texture_view is not supported, this additions will apply to 169 Table 4.X.2 "Compatible internal formats for CopyImageSubDataEXT" as 170 introduced by EXT_copy_image) 171 172 173 Add to Table texbo1, "Internal Formats for Buffer Textures. ..." 174 175 Component 176 Sized Internal Format Base Type Components Norm 0 1 2 3 177 --------------------- --------- ---------- ---- --------- 178 R16_EXT ushort 1 Yes R 0 0 1 179 RG16_EXT ushort 2 Yes R G 0 1 180 RGBA16_EXT ushort 4 Yes R G B A 181 182 183Additions to Chapter 15 of the OpenGL ES 3.1 Specification 184(Writing Fragments and Samples to the Framebuffer) 185 186 Add to the second paragraph of Section 16.1.2 "ReadPixels": 187 188 "For 16bit unsigned normalized fixed-point rendering surfaces, 189 the combination format RGBA and type UNSIGNED_SHORT is accepted." 190 191Errors 192 193 No new errors. 194 195Interactions with EXT_texture_buffer 196 197 If EXT_texture_buffer is not supported, remove references to TexBufferEXT 198 and TexBufferRangeEXT. Also remove additions to Table textbo1. 199 200 201Interactions with EXT_texture_view 202 203 If EXT_texture_view is not supported, remove references to TextureViewEXT. 204 Also remove additions to Table 8.X.2. 205 206Interactions with OES_texture_storage_multisample_2d_array 207 208 If OES_texture_storage_multisample_2d_array is not supported, remove 209 references to TexStorage3DMultisampleOES 210 211Interactions with EXT_copy_image 212 213 If EXT_copy_image is not supported, remove additions to Table 8.X.2. 214 (If EXT_texture_view is not supported remove references to Table 4.X.2) 215 216Interactions with EXT_texture_compression_s3tc (or equivalent): 217 218 If EXT_texture_compression_s3tc or similar functionality (i.e. 219 NV_texture_compression_s3tc etc) is not supported, ignore references 220 to the following texture formats: COMPRESSED_RGB_S3TC_DXT1_EXT and 221 COMPRESSED_RGBA_S3TC_DXT1_EXT. 222 223Interactions with NV_sRGB_formats (or equivalent): 224 225 If NV_sRGB_formats or similar functionality is not 226 supported, ignore references to the following texture formats: 227 COMPRESSED_SRGB_S3TC_DXT1_NV and COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV. 228 229Interactions with EXT_texture_compression_rgtc (or equivalent): 230 231 If EXT_texture_compression_rgtc or equivalent functionality is not 232 supported, ignore references to the following texture formats: 233 COMPRESSED_RED_RGTC1_EXT, COMPRESSED_SIGNED_RED_RGTC1_EXT. 234 235Issues 236 237 None yet. 238 239Revision History: 240 241 Revision 1 2014-07-03 (mheyer) 242 initial revision 243 Revision 2 2014-07-18 (mheyer) 244 add EXT_texture_buffer, EXT_texture_view, EXT_copy_image and 245 OES_texture_storage_multisample_2d_array interactions 246 Revision 3 2014-07-18 (mheyer) 247 rename to NV_texture_norm16, mark SNORM formats as non color-renderable 248 Revision 4 2014-08-05 (mheyer) 249 rename to EXT_texture_norm16, added interactions with compressed 250 texture format extensions 251 Revision: 5 2014-10-24 (dkoch) 252 mark complete, publishing cleanup 253