15bd8deadSopenharmony_ciName 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ci EXT_copy_image 45bd8deadSopenharmony_ci 55bd8deadSopenharmony_ciName Strings 65bd8deadSopenharmony_ci 75bd8deadSopenharmony_ci GL_EXT_copy_image 85bd8deadSopenharmony_ci 95bd8deadSopenharmony_ciContact 105bd8deadSopenharmony_ci 115bd8deadSopenharmony_ci Daniel Koch, NVIDIA Corporation (dkoch 'at' nvidia.com) 125bd8deadSopenharmony_ci 135bd8deadSopenharmony_ciContributors 145bd8deadSopenharmony_ci 155bd8deadSopenharmony_ci Ian Stewart, NVIDIA 165bd8deadSopenharmony_ci Graham Connor, Imagination 175bd8deadSopenharmony_ci Ben Bowman, Imagination 185bd8deadSopenharmony_ci Jonathan Putsman, Imagination 195bd8deadSopenharmony_ci And the contributors to ARB_copy_image 205bd8deadSopenharmony_ci 215bd8deadSopenharmony_ciNotice 225bd8deadSopenharmony_ci 235bd8deadSopenharmony_ci Copyright (c) 2012-2013 The Khronos Group Inc. Copyright terms at 245bd8deadSopenharmony_ci http://www.khronos.org/registry/speccopyright.html 255bd8deadSopenharmony_ci 265bd8deadSopenharmony_ciStatus 275bd8deadSopenharmony_ci 285bd8deadSopenharmony_ci Complete. 295bd8deadSopenharmony_ci 305bd8deadSopenharmony_ciVersion 315bd8deadSopenharmony_ci 325bd8deadSopenharmony_ci Last Modified Date: March 26, 2014 335bd8deadSopenharmony_ci Revision: 5 345bd8deadSopenharmony_ci 355bd8deadSopenharmony_ciNumber 365bd8deadSopenharmony_ci 375bd8deadSopenharmony_ci OpenGL ES Extension #175 385bd8deadSopenharmony_ci 395bd8deadSopenharmony_ciDependencies 405bd8deadSopenharmony_ci 415bd8deadSopenharmony_ci OpenGL ES 3.0 is required. 425bd8deadSopenharmony_ci 435bd8deadSopenharmony_ci This extension is written against the OpenGL ES 3.0 specification. 445bd8deadSopenharmony_ci 455bd8deadSopenharmony_ci This extension interacts with EXT_texture_view. 465bd8deadSopenharmony_ci 475bd8deadSopenharmony_ci This extension interacts with EXT_texture_buffer. 485bd8deadSopenharmony_ci 495bd8deadSopenharmony_ci This extension interacts with EXT_texture_cube_map_array. 505bd8deadSopenharmony_ci 515bd8deadSopenharmony_ci This extension interacts with EXT_texture_compression_s3tc. 525bd8deadSopenharmony_ci 535bd8deadSopenharmony_ci This extension interacts with EXT_texture_compression_rgtc. 545bd8deadSopenharmony_ci 555bd8deadSopenharmony_ci This extension interacts with EXT_texture_compression_bptc. 565bd8deadSopenharmony_ci 575bd8deadSopenharmony_ci This extension interacts with KHR_texture_compression_astc_ldr. 585bd8deadSopenharmony_ci 595bd8deadSopenharmony_ci This extension interacts with KHR_texture_compression_astc_hdr. 605bd8deadSopenharmony_ci 615bd8deadSopenharmony_ci This extension interacts with OES_texture_compression_astc. 625bd8deadSopenharmony_ci 635bd8deadSopenharmony_ciOverview 645bd8deadSopenharmony_ci 655bd8deadSopenharmony_ci This extension enables efficient image data transfer between image 665bd8deadSopenharmony_ci objects (i.e. textures and renderbuffers) without the need to bind 675bd8deadSopenharmony_ci the objects or otherwise configure the rendering pipeline. 685bd8deadSopenharmony_ci 695bd8deadSopenharmony_ci This is accomplised by adding a new entry-point CopyImageSubData, 705bd8deadSopenharmony_ci which takes a named source and destination. 715bd8deadSopenharmony_ci 725bd8deadSopenharmony_ci CopyImageSubData does not perform general-purpose conversions 735bd8deadSopenharmony_ci such as scaling, resizing, blending, color-space, or format 745bd8deadSopenharmony_ci conversions. It should be considered to operate in a manner 755bd8deadSopenharmony_ci similar to a CPU memcpy, but using the GPU for the copy. 765bd8deadSopenharmony_ci 775bd8deadSopenharmony_ci CopyImageSubData supports copies between images with different 785bd8deadSopenharmony_ci internal formats, if the formats are compatible as described in 795bd8deadSopenharmony_ci this extension. 805bd8deadSopenharmony_ci 815bd8deadSopenharmony_ci CopyImageSubData also supports copying between compressed and 825bd8deadSopenharmony_ci uncompressed images if the compressed block / uncompressed texel 835bd8deadSopenharmony_ci sizes are the same. 845bd8deadSopenharmony_ci 855bd8deadSopenharmony_ciNew Procedures and Functions 865bd8deadSopenharmony_ci 875bd8deadSopenharmony_ci void CopyImageSubDataEXT( 885bd8deadSopenharmony_ci uint srcName, enum srcTarget, int srcLevel, 895bd8deadSopenharmony_ci int srcX, int srcY, int srcZ, 905bd8deadSopenharmony_ci uint dstName, enum dstTarget, int dstLevel, 915bd8deadSopenharmony_ci int dstX, int dstY, int dstZ, 925bd8deadSopenharmony_ci sizei srcWidth, sizei srcHeight, sizei srcDepth); 935bd8deadSopenharmony_ci 945bd8deadSopenharmony_ciNew Tokens 955bd8deadSopenharmony_ci 965bd8deadSopenharmony_ci None 975bd8deadSopenharmony_ci 985bd8deadSopenharmony_ciAdditions to Chapter 4 of the OpenGL ES 3.0 Specification (Per-Fragment 995bd8deadSopenharmony_ciOperations and the Framebuffer) 1005bd8deadSopenharmony_ci 1015bd8deadSopenharmony_ci Append to section 4.3.3 (Copying Pixels): 1025bd8deadSopenharmony_ci 1035bd8deadSopenharmony_ci The function 1045bd8deadSopenharmony_ci 1055bd8deadSopenharmony_ci void CopyImageSubDataEXT( 1065bd8deadSopenharmony_ci uint srcName, enum srcTarget, int srcLevel, 1075bd8deadSopenharmony_ci int srcX, int srcY, int srcZ, 1085bd8deadSopenharmony_ci uint dstName, enum dstTarget, int dstLevel, 1095bd8deadSopenharmony_ci int dstX, int dstY, int dstZ, 1105bd8deadSopenharmony_ci sizei srcWidth, sizei srcHeight, sizei srcDepth); 1115bd8deadSopenharmony_ci 1125bd8deadSopenharmony_ci may be used to copy a region of texel data between two image 1135bd8deadSopenharmony_ci objects. An image object may be either a texture or a 1145bd8deadSopenharmony_ci renderbuffer. 1155bd8deadSopenharmony_ci 1165bd8deadSopenharmony_ci CopyImageSubData does not perform general-purpose conversions 1175bd8deadSopenharmony_ci such as scaling, resizing, blending, color-space, or format 1185bd8deadSopenharmony_ci conversions. It should be considered to operate in a manner 1195bd8deadSopenharmony_ci similar to a CPU memcpy. CopyImageSubData can copy between 1205bd8deadSopenharmony_ci images with different internal formats, provided 1215bd8deadSopenharmony_ci the formats are compatible. 1225bd8deadSopenharmony_ci 1235bd8deadSopenharmony_ci CopyImageSubData also allows copying between certain 1245bd8deadSopenharmony_ci types of compressed and uncompressed internal formats as detailed 1255bd8deadSopenharmony_ci in Table 4.X.1. This copy does not perform on-the-fly compression 1265bd8deadSopenharmony_ci or decompression. When copying from an uncompressed internal format 1275bd8deadSopenharmony_ci to a compressed internal format, each texel of uncompressed data 1285bd8deadSopenharmony_ci becomes a single block of compressed data. When copying from a 1295bd8deadSopenharmony_ci compressed internal format to an uncompressed internal format, 1305bd8deadSopenharmony_ci a block of compressed data becomes a single texel of uncompressed 1315bd8deadSopenharmony_ci data. The texel size of the uncompressed format must be the same 1325bd8deadSopenharmony_ci size the block size of the compressed formats. Thus it is permitted 1335bd8deadSopenharmony_ci to copy between a 128-bit uncompressed format and a compressed 1345bd8deadSopenharmony_ci format which uses 8-bit 4x4 blocks, or between a 64-bit uncompressed 1355bd8deadSopenharmony_ci format and a compressed format which uses 4-bit 4x4 blocks. 1365bd8deadSopenharmony_ci INVALID_OPERATION is generated if the texel size of 1375bd8deadSopenharmony_ci the uncompressed image is not equal to the block size of the 1385bd8deadSopenharmony_ci compressed image. 1395bd8deadSopenharmony_ci 1405bd8deadSopenharmony_ci The source object is identified by <srcName> and <srcTarget>. 1415bd8deadSopenharmony_ci Similarly the destination object is identified by <dstName> and 1425bd8deadSopenharmony_ci <dstTarget>. The interpretation of the name depends on the value 1435bd8deadSopenharmony_ci of the corresponding target parameter. If the target parameter is 1445bd8deadSopenharmony_ci RENDERBUFFER, the name is interpreted as the name of a 1455bd8deadSopenharmony_ci renderbuffer object. If the target parameter is a texture target, 1465bd8deadSopenharmony_ci the name is interpreted as a texture object. All 1475bd8deadSopenharmony_ci texture targets are accepted, with the exception of TEXTURE_BUFFER_EXT 1485bd8deadSopenharmony_ci and the cubemap face selectors described in table 3.17. 1495bd8deadSopenharmony_ci INVALID_ENUM is generated if either target is not RENDERBUFFER 1505bd8deadSopenharmony_ci or a valid texture target, or is TEXTURE_BUFFER, or is one 1515bd8deadSopenharmony_ci of the cubemap face selectors described in table 3.21, or if the 1525bd8deadSopenharmony_ci target does not match the type of the object. INVALID_OPERATION 1535bd8deadSopenharmony_ci is generated if either object is a texture and the texture is 1545bd8deadSopenharmony_ci not complete (as defined in section 3.8.13), if the source and 1555bd8deadSopenharmony_ci destination internal formats are not compatible (see below), 1565bd8deadSopenharmony_ci or if the number of samples do not match. 1575bd8deadSopenharmony_ci INVALID_VALUE is generated if either name does not correspond to a 1585bd8deadSopenharmony_ci valid renderbuffer or texture object according to the corresponding 1595bd8deadSopenharmony_ci target parameter. 1605bd8deadSopenharmony_ci 1615bd8deadSopenharmony_ci <srcLevel> and <dstLevel> identify the source and destination 1625bd8deadSopenharmony_ci level of detail. For textures, this must be a valid level of 1635bd8deadSopenharmony_ci detail in the texture object. For renderbuffers, this value must 1645bd8deadSopenharmony_ci be zero. INVALID_VALUE is generated if the specified level is not 1655bd8deadSopenharmony_ci a valid level for the image. 1665bd8deadSopenharmony_ci 1675bd8deadSopenharmony_ci <srcX>, <srcY>, and <srcZ> specify the lower left texel 1685bd8deadSopenharmony_ci coordinates of a <srcWidth>-wide by <srcHeight>-high by 1695bd8deadSopenharmony_ci <srcDepth>-deep rectangular subregion of the source texel array. 1705bd8deadSopenharmony_ci Similarly, <dstX>, <dstY> and <dstZ> specify the coordinates of a 1715bd8deadSopenharmony_ci subregion of the destination texel array. The source and destination 1725bd8deadSopenharmony_ci subregions must be contained entirely within the specified level of the 1735bd8deadSopenharmony_ci corresponding image objects. 1745bd8deadSopenharmony_ci The dimensions are always specified in texels, even for compressed 1755bd8deadSopenharmony_ci texture formats. But it should be noted that if only one of the 1765bd8deadSopenharmony_ci source and destination textures is compressed then the number of 1775bd8deadSopenharmony_ci texels touched in the compressed image will be a factor of the 1785bd8deadSopenharmony_ci block size larger than in the uncompressed image. 1795bd8deadSopenharmony_ci INVALID_VALUE is generated if the 1805bd8deadSopenharmony_ci dimensions of the either subregion exceeds the boundaries of the 1815bd8deadSopenharmony_ci corresponding image object, or if the image format is compressed 1825bd8deadSopenharmony_ci and the dimensions of the subregion fail to meet the alignment 1835bd8deadSopenharmony_ci constraints of the format. 1845bd8deadSopenharmony_ci 1855bd8deadSopenharmony_ci If the source and destination images are identical, and the source 1865bd8deadSopenharmony_ci and destination rectangles overlap, the result of the operation is 1875bd8deadSopenharmony_ci undefined. 1885bd8deadSopenharmony_ci 1895bd8deadSopenharmony_ci Slices of a TEXTURE_2D_ARRAY, TEXTURE_CUBE_MAP_ARRAY_EXT, 1905bd8deadSopenharmony_ci TEXTURE_3D and faces of TEXTURE_CUBE_MAP are all compatible provided 1915bd8deadSopenharmony_ci they share a compatible internal format, and multiple slices or faces 1925bd8deadSopenharmony_ci may be copied between these objects with a single call by specifying the 1935bd8deadSopenharmony_ci starting slice with <srcZ> and <dstZ>, and the number of slices to 1945bd8deadSopenharmony_ci be copied with <srcDepth>. Cubemap textures always have six faces 1955bd8deadSopenharmony_ci which are selected by a zero-based face index, according to the 1965bd8deadSopenharmony_ci order specified in table 3.21. 1975bd8deadSopenharmony_ci 1985bd8deadSopenharmony_ci For the purposes of CopyImageSubData, two internal formats 1995bd8deadSopenharmony_ci are considered compatible if any of the following conditions are 2005bd8deadSopenharmony_ci met: 2015bd8deadSopenharmony_ci * the formats are the same, 2025bd8deadSopenharmony_ci * the formats are both listed in the same entry of Table 4.X.2, or 2035bd8deadSopenharmony_ci * one format is compressed and the other is uncompressed and 2045bd8deadSopenharmony_ci Table 4.X.1 lists the two formats in the same row. 2055bd8deadSopenharmony_ci If the formats are not compatible INVALID_OPERATION is generated. 2065bd8deadSopenharmony_ci 2075bd8deadSopenharmony_ci ------------------------------------------------------------------------------ 2085bd8deadSopenharmony_ci | Texel / | Uncompressed | | 2095bd8deadSopenharmony_ci | Block | internal format | Compressed internal format | 2105bd8deadSopenharmony_ci | size | | | 2115bd8deadSopenharmony_ci ------------------------------------------------------------------------------ 2125bd8deadSopenharmony_ci | 128-bit | RGBA32UI, | COMPRESSED_RGBA_S3TC_DXT3_EXT, | 2135bd8deadSopenharmony_ci | | RGBA32I, | COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT, | 2145bd8deadSopenharmony_ci | | RGBA32F | COMPRESSED_RGBA_S3TC_DXT5_EXT, | 2155bd8deadSopenharmony_ci | | | COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT, | 2165bd8deadSopenharmony_ci | | | COMPRESSED_RG_RGTC2, | 2175bd8deadSopenharmony_ci | | | COMPRESSED_SIGNED_RG_RGTC2, | 2185bd8deadSopenharmony_ci | | | COMPRESSED_RGBA_BPTC_UNORM, | 2195bd8deadSopenharmony_ci | | | COMPRESSED_SRGB_ALPHA_BPTC_UNORM, | 2205bd8deadSopenharmony_ci | | | COMPRESSED_RGB_BPTC_SIGNED_FLOAT, | 2215bd8deadSopenharmony_ci | | | COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT, | 2225bd8deadSopenharmony_ci | | | COMPRESSED_RGBA8_ETC2_EAC, | 2235bd8deadSopenharmony_ci | | | COMPRESSED_SRGB8_ALPHA8_ETC2_EAC, | 2245bd8deadSopenharmony_ci | | | COMPRESSED_RG11_EAC, | 2255bd8deadSopenharmony_ci | | | COMPRESSED_SIGNED_RG11_EAC, | 2265bd8deadSopenharmony_ci | | | COMPRESSED_RGBA_ASTC_4x4_KHR, | 2275bd8deadSopenharmony_ci | | | COMPRESSED_RGBA_ASTC_5x4_KHR, | 2285bd8deadSopenharmony_ci | | | COMPRESSED_RGBA_ASTC_5x5_KHR, | 2295bd8deadSopenharmony_ci | | | COMPRESSED_RGBA_ASTC_6x5_KHR, | 2305bd8deadSopenharmony_ci | | | COMPRESSED_RGBA_ASTC_6x6_KHR, | 2315bd8deadSopenharmony_ci | | | COMPRESSED_RGBA_ASTC_8x5_KHR, | 2325bd8deadSopenharmony_ci | | | COMPRESSED_RGBA_ASTC_8x6_KHR, | 2335bd8deadSopenharmony_ci | | | COMPRESSED_RGBA_ASTC_8x8_KHR, | 2345bd8deadSopenharmony_ci | | | COMPRESSED_RGBA_ASTC_10x5_KHR, | 2355bd8deadSopenharmony_ci | | | COMPRESSED_RGBA_ASTC_10x6_KHR, | 2365bd8deadSopenharmony_ci | | | COMPRESSED_RGBA_ASTC_10x8_KHR, | 2375bd8deadSopenharmony_ci | | | COMPRESSED_RGBA_ASTC_10x10_KHR, | 2385bd8deadSopenharmony_ci | | | COMPRESSED_RGBA_ASTC_12x10_KHR, | 2395bd8deadSopenharmony_ci | | | COMPRESSED_RGBA_ASTC_12x12_KHR, | 2405bd8deadSopenharmony_ci | | | COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR, | 2415bd8deadSopenharmony_ci | | | COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR, | 2425bd8deadSopenharmony_ci | | | COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR, | 2435bd8deadSopenharmony_ci | | | COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR, | 2445bd8deadSopenharmony_ci | | | COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR, | 2455bd8deadSopenharmony_ci | | | COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR, | 2465bd8deadSopenharmony_ci | | | COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR, | 2475bd8deadSopenharmony_ci | | | COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR, | 2485bd8deadSopenharmony_ci | | | COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR, | 2495bd8deadSopenharmony_ci | | | COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR, | 2505bd8deadSopenharmony_ci | | | COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR, | 2515bd8deadSopenharmony_ci | | | COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR, | 2525bd8deadSopenharmony_ci | | | COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR, | 2535bd8deadSopenharmony_ci | | | COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR, | 2545bd8deadSopenharmony_ci | | | COMPRESSED_RGBA_ASTC_3x3x3_OES, | 2555bd8deadSopenharmony_ci | | | COMPRESSED_RGBA_ASTC_4x3x3_OES, | 2565bd8deadSopenharmony_ci | | | COMPRESSED_RGBA_ASTC_4x4x3_OES, | 2575bd8deadSopenharmony_ci | | | COMPRESSED_RGBA_ASTC_4x4x4_OES, | 2585bd8deadSopenharmony_ci | | | COMPRESSED_RGBA_ASTC_5x4x4_OES, | 2595bd8deadSopenharmony_ci | | | COMPRESSED_RGBA_ASTC_5x5x4_OES, | 2605bd8deadSopenharmony_ci | | | COMPRESSED_RGBA_ASTC_5x5x5_OES, | 2615bd8deadSopenharmony_ci | | | COMPRESSED_RGBA_ASTC_6x5x5_OES, | 2625bd8deadSopenharmony_ci | | | COMPRESSED_RGBA_ASTC_6x6x5_OES, | 2635bd8deadSopenharmony_ci | | | COMPRESSED_RGBA_ASTC_6x6x6_OES, | 2645bd8deadSopenharmony_ci | | | COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES, | 2655bd8deadSopenharmony_ci | | | COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES, | 2665bd8deadSopenharmony_ci | | | COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES, | 2675bd8deadSopenharmony_ci | | | COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES, | 2685bd8deadSopenharmony_ci | | | COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES, | 2695bd8deadSopenharmony_ci | | | COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES, | 2705bd8deadSopenharmony_ci | | | COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES, | 2715bd8deadSopenharmony_ci | | | COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES, | 2725bd8deadSopenharmony_ci | | | COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES, | 2735bd8deadSopenharmony_ci | | | COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES | 2745bd8deadSopenharmony_ci ------------------------------------------------------------------------------ 2755bd8deadSopenharmony_ci | 64-bit | RGBA16F, RG32F, | COMPRESSED_RGB_S3TC_DXT1_EXT, | 2765bd8deadSopenharmony_ci | | RGBA16UI, RG32UI, | COMPRESSED_SRGB_S3TC_DXT1_EXT, | 2775bd8deadSopenharmony_ci | | RGBA16I, RG32I, | COMPRESSED_RGBA_S3TC_DXT1_EXT, | 2785bd8deadSopenharmony_ci | | | COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT, | 2795bd8deadSopenharmony_ci | | | COMPRESSED_RED_RGTC1, | 2805bd8deadSopenharmony_ci | | | COMPRESSED_SIGNED_RED_RGTC1, | 2815bd8deadSopenharmony_ci | | | COMPRESSED_RGB8_ETC2, | 2825bd8deadSopenharmony_ci | | | COMPRESSED_SRGB8_ETC2, | 2835bd8deadSopenharmony_ci | | | COMPRESSED_R11_EAC, | 2845bd8deadSopenharmony_ci | | | COMPRESSED_SIGNED_R11_EAC, | 2855bd8deadSopenharmony_ci | | | COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2, | 2865bd8deadSopenharmony_ci | | | COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 | 2875bd8deadSopenharmony_ci ------------------------------------------------------------------------------ 2885bd8deadSopenharmony_ci 2895bd8deadSopenharmony_ci Table 4.X.1: Compatible internal formats for copying between 2905bd8deadSopenharmony_ci compressed and uncompressed internal formats with CopyImageSubDataEXT. 2915bd8deadSopenharmony_ci Formats in the same row can be copied between each other. 2925bd8deadSopenharmony_ci 2935bd8deadSopenharmony_ci -------------------------------------------------------------------------- 2945bd8deadSopenharmony_ci | Class | Internal formats | 2955bd8deadSopenharmony_ci -------------------------------------------------------------------------- 2965bd8deadSopenharmony_ci | VIEW_CLASS_128_BITS | RGBA32F, RGBA32UI, RGBA32I | 2975bd8deadSopenharmony_ci -------------------------------------------------------------------------- 2985bd8deadSopenharmony_ci | VIEW_CLASS_96_BITS | RGB32F, RGB32UI, RGB32I | 2995bd8deadSopenharmony_ci -------------------------------------------------------------------------- 3005bd8deadSopenharmony_ci | VIEW_CLASS_64_BITS | RGBA16F, RG32F, RGBA16UI, RG32UI, | 3015bd8deadSopenharmony_ci | | RGBA16I, RG32I | 3025bd8deadSopenharmony_ci -------------------------------------------------------------------------- 3035bd8deadSopenharmony_ci | VIEW_CLASS_48_BITS | RGB16F, RGB16UI, RGB16I | 3045bd8deadSopenharmony_ci -------------------------------------------------------------------------- 3055bd8deadSopenharmony_ci | VIEW_CLASS_32_BITS | RG16F, R11F_G11F_B10F, R32F, | 3065bd8deadSopenharmony_ci | | RGB10_A2UI, RGBA8UI, RG16UI, R32UI, | 3075bd8deadSopenharmony_ci | | RGBA8I, RG16I, R32I, RGB10_A2, RGBA8, | 3085bd8deadSopenharmony_ci | | RGBA8_SNORM, SRGB8_ALPHA8, RGB9_E5 | 3095bd8deadSopenharmony_ci ------------------------------------------------------------------------- 3105bd8deadSopenharmony_ci | VIEW_CLASS_24_BITS | RGB8, RGB8_SNORM, SRGB8, RGB8UI, RGB8I | 3115bd8deadSopenharmony_ci -------------------------------------------------------------------------- 3125bd8deadSopenharmony_ci | VIEW_CLASS_16_BITS | R16F, RG8UI, R16UI, RG8I, R16I, RG8, | 3135bd8deadSopenharmony_ci | | RG8_SNORM | 3145bd8deadSopenharmony_ci -------------------------------------------------------------------------- 3155bd8deadSopenharmony_ci | VIEW_CLASS_8_BITS | R8UI, R8I, R8, R8_SNORM | 3165bd8deadSopenharmony_ci -------------------------------------------------------------------------- 3175bd8deadSopenharmony_ci | VIEW_CLASS_RGTC1_RED | COMPRESSED_RED_RGTC1_EXT, | 3185bd8deadSopenharmony_ci | | COMPRESSED_SIGNED_RED_RGTC1_EXT | 3195bd8deadSopenharmony_ci -------------------------------------------------------------------------- 3205bd8deadSopenharmony_ci | VIEW_CLASS_RGTC2_RG | COMPRESSED_RG_RGTC2_EXT, | 3215bd8deadSopenharmony_ci | | COMPRESSED_SIGNED_RG_RGTC2_EXT | 3225bd8deadSopenharmony_ci -------------------------------------------------------------------------- 3235bd8deadSopenharmony_ci | VIEW_CLASS_BPTC_UNORM | COMPRESSED_RGBA_BPTC_UNORM_EXT, | 3245bd8deadSopenharmony_ci | | COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT | 3255bd8deadSopenharmony_ci -------------------------------------------------------------------------- 3265bd8deadSopenharmony_ci | VIEW_CLASS_BPTC_FLOAT | COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT, | 3275bd8deadSopenharmony_ci | | COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT | 3285bd8deadSopenharmony_ci -------------------------------------------------------------------------- 3295bd8deadSopenharmony_ci | VIEW_CLASS_S3TC_DXT1_RGB | COMPRESSED_RGB_S3TC_DXT1_EXT, | 3305bd8deadSopenharmony_ci | | COMPRESSED_SRGB_S3TC_DXT1_EXT | 3315bd8deadSopenharmony_ci -------------------------------------------------------------------------- 3325bd8deadSopenharmony_ci | VIEW_CLASS_S3TC_DXT1_RGBA | COMPRESSED_RGBA_S3TC_DXT1_EXT, | 3335bd8deadSopenharmony_ci | | COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT | 3345bd8deadSopenharmony_ci -------------------------------------------------------------------------- 3355bd8deadSopenharmony_ci | VIEW_CLASS_S3TC_DXT3_RGBA | COMPRESSED_RGBA_S3TC_DXT3_EXT, | 3365bd8deadSopenharmony_ci | | COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT | 3375bd8deadSopenharmony_ci -------------------------------------------------------------------------- 3385bd8deadSopenharmony_ci | VIEW_CLASS_S3TC_DXT5_RGBA | COMPRESSED_RGBA_S3TC_DXT5_EXT, | 3395bd8deadSopenharmony_ci | | COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT | 3405bd8deadSopenharmony_ci -------------------------------------------------------------------------- 3415bd8deadSopenharmony_ci | VIEW_CLASS_EAC_R11 | COMPRESSED_R11_EAC, | 3425bd8deadSopenharmony_ci | | COMPRESSED_SIGNED_R11_EAC | 3435bd8deadSopenharmony_ci -------------------------------------------------------------------------- 3445bd8deadSopenharmony_ci | VIEW_CLASS_EAC_RG11 | COMPRESSED_RG11_EAC, | 3455bd8deadSopenharmony_ci | | COMPRESSED_SIGNED_RG11_EAC | 3465bd8deadSopenharmony_ci -------------------------------------------------------------------------- 3475bd8deadSopenharmony_ci | VIEW_CLASS_ETC2_RGB | COMPRESSED_RGB8_ETC2, | 3485bd8deadSopenharmony_ci | | COMPRESSED_SRGB8_ETC2 | 3495bd8deadSopenharmony_ci -------------------------------------------------------------------------- 3505bd8deadSopenharmony_ci | VIEW_CLASS_ETC2_RGBA | COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2, | 3515bd8deadSopenharmony_ci | | COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 | 3525bd8deadSopenharmony_ci -------------------------------------------------------------------------- 3535bd8deadSopenharmony_ci | VIEW_CLASS_ETC2_EAC_RGBA | COMPRESSED_RGBA8_ETC2_EAC, | 3545bd8deadSopenharmony_ci | | COMPRESSED_SRGB8_ALPHA8_ETC2_EAC | 3555bd8deadSopenharmony_ci -------------------------------------------------------------------------- 3565bd8deadSopenharmony_ci | VIEW_CLASS_ASTC_4x4_RGBA | COMPRESSED_RGBA_ASTC_4x4_KHR, | 3575bd8deadSopenharmony_ci | | COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR | 3585bd8deadSopenharmony_ci -------------------------------------------------------------------------- 3595bd8deadSopenharmony_ci | VIEW_CLASS_ASTC_5x4_RGBA | COMPRESSED_RGBA_ASTC_5x4_KHR, | 3605bd8deadSopenharmony_ci | | COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR | 3615bd8deadSopenharmony_ci -------------------------------------------------------------------------- 3625bd8deadSopenharmony_ci | VIEW_CLASS_ASTC_5x5_RGBA | COMPRESSED_RGBA_ASTC_5x5_KHR, | 3635bd8deadSopenharmony_ci | | COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR | 3645bd8deadSopenharmony_ci -------------------------------------------------------------------------- 3655bd8deadSopenharmony_ci | VIEW_CLASS_ASTC_6x5_RGBA | COMPRESSED_RGBA_ASTC_6x5_KHR, | 3665bd8deadSopenharmony_ci | | COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR | 3675bd8deadSopenharmony_ci -------------------------------------------------------------------------- 3685bd8deadSopenharmony_ci | VIEW_CLASS_ASTC_6x6_RGBA | COMPRESSED_RGBA_ASTC_6x6_KHR, | 3695bd8deadSopenharmony_ci | | COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR | 3705bd8deadSopenharmony_ci -------------------------------------------------------------------------- 3715bd8deadSopenharmony_ci | VIEW_CLASS_ASTC_8x5_RGBA | COMPRESSED_RGBA_ASTC_8x5_KHR, | 3725bd8deadSopenharmony_ci | | COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR | 3735bd8deadSopenharmony_ci -------------------------------------------------------------------------- 3745bd8deadSopenharmony_ci | VIEW_CLASS_ASTC_8x6_RGBA | COMPRESSED_RGBA_ASTC_8x6_KHR, | 3755bd8deadSopenharmony_ci | | COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR | 3765bd8deadSopenharmony_ci -------------------------------------------------------------------------- 3775bd8deadSopenharmony_ci | VIEW_CLASS_ASTC_8x8_RGBA | COMPRESSED_RGBA_ASTC_8x8_KHR, | 3785bd8deadSopenharmony_ci | | COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR | 3795bd8deadSopenharmony_ci -------------------------------------------------------------------------- 3805bd8deadSopenharmony_ci | VIEW_CLASS_ASTC_10x5_RGBA | COMPRESSED_RGBA_ASTC_10x5_KHR, | 3815bd8deadSopenharmony_ci | | COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR | 3825bd8deadSopenharmony_ci -------------------------------------------------------------------------- 3835bd8deadSopenharmony_ci | VIEW_CLASS_ASTC_10x6_RGBA | COMPRESSED_RGBA_ASTC_10x6_KHR, | 3845bd8deadSopenharmony_ci | | COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR | 3855bd8deadSopenharmony_ci -------------------------------------------------------------------------- 3865bd8deadSopenharmony_ci | VIEW_CLASS_ASTC_10x8_RGBA | COMPRESSED_RGBA_ASTC_10x8_KHR, | 3875bd8deadSopenharmony_ci | | COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR | 3885bd8deadSopenharmony_ci -------------------------------------------------------------------------- 3895bd8deadSopenharmony_ci | VIEW_CLASS_ASTC_10x10_RGBA | COMPRESSED_RGBA_ASTC_10x10_KHR, | 3905bd8deadSopenharmony_ci | | COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR | 3915bd8deadSopenharmony_ci -------------------------------------------------------------------------- 3925bd8deadSopenharmony_ci | VIEW_CLASS_ASTC_12x10_RGBA | COMPRESSED_RGBA_ASTC_12x10_KHR, | 3935bd8deadSopenharmony_ci | | COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR | 3945bd8deadSopenharmony_ci -------------------------------------------------------------------------- 3955bd8deadSopenharmony_ci | VIEW_CLASS_ASTC_12x12_RGBA | COMPRESSED_RGBA_ASTC_12x12_KHR, | 3965bd8deadSopenharmony_ci | | COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR | 3975bd8deadSopenharmony_ci -------------------------------------------------------------------------- 3985bd8deadSopenharmony_ci | VIEW_CLASS_ASTC_3x3x3_RGBA | COMPRESSED_RGBA_ASTC_3x3x3_OES, | 3995bd8deadSopenharmony_ci | | COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES | 4005bd8deadSopenharmony_ci -------------------------------------------------------------------------- 4015bd8deadSopenharmony_ci | VIEW_CLASS_ASTC_4x3x3_RGBA | COMPRESSED_RGBA_ASTC_4x3x3_OES, | 4025bd8deadSopenharmony_ci | | COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES | 4035bd8deadSopenharmony_ci -------------------------------------------------------------------------- 4045bd8deadSopenharmony_ci | VIEW_CLASS_ASTC_4x4x3_RGBA | COMPRESSED_RGBA_ASTC_4x4x3_OES, | 4055bd8deadSopenharmony_ci | | COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES | 4065bd8deadSopenharmony_ci -------------------------------------------------------------------------- 4075bd8deadSopenharmony_ci | VIEW_CLASS_ASTC_4x4x4_RGBA | COMPRESSED_RGBA_ASTC_4x4x4_OES, | 4085bd8deadSopenharmony_ci | | COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES | 4095bd8deadSopenharmony_ci -------------------------------------------------------------------------- 4105bd8deadSopenharmony_ci | VIEW_CLASS_ASTC_5x4x4_RGBA | COMPRESSED_RGBA_ASTC_5x4x4_OES, | 4115bd8deadSopenharmony_ci | | COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES | 4125bd8deadSopenharmony_ci -------------------------------------------------------------------------- 4135bd8deadSopenharmony_ci | VIEW_CLASS_ASTC_5x5x4_RGBA | COMPRESSED_RGBA_ASTC_5x5x4_OES, | 4145bd8deadSopenharmony_ci | | COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES | 4155bd8deadSopenharmony_ci -------------------------------------------------------------------------- 4165bd8deadSopenharmony_ci | VIEW_CLASS_ASTC_5x5x5_RGBA | COMPRESSED_RGBA_ASTC_5x5x5_OES, | 4175bd8deadSopenharmony_ci | | COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES | 4185bd8deadSopenharmony_ci -------------------------------------------------------------------------- 4195bd8deadSopenharmony_ci | VIEW_CLASS_ASTC_6x5x5_RGBA | COMPRESSED_RGBA_ASTC_6x5x5_OES, | 4205bd8deadSopenharmony_ci | | COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES | 4215bd8deadSopenharmony_ci -------------------------------------------------------------------------- 4225bd8deadSopenharmony_ci | VIEW_CLASS_ASTC_6x6x5_RGBA | COMPRESSED_RGBA_ASTC_6x6x5_OES, | 4235bd8deadSopenharmony_ci | | COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES | 4245bd8deadSopenharmony_ci -------------------------------------------------------------------------- 4255bd8deadSopenharmony_ci | VIEW_CLASS_ASTC_6x6x6_RGBA | COMPRESSED_RGBA_ASTC_6x6x6_OES, | 4265bd8deadSopenharmony_ci | | COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES | 4275bd8deadSopenharmony_ci -------------------------------------------------------------------------- 4285bd8deadSopenharmony_ci 4295bd8deadSopenharmony_ci Table 4.X.2: Compatible internal formats for CopyImageSubDataEXT. 4305bd8deadSopenharmony_ci Formats in the same entry may be copied between each other. 4315bd8deadSopenharmony_ci [[Note that if texture_view is supported, this table should 4325bd8deadSopenharmony_ci be replaced with a reference to Table 3.X.2 from that extension.]] 4335bd8deadSopenharmony_ci 4345bd8deadSopenharmony_ci If the internal format does not exactly match the internal format of the 4355bd8deadSopenharmony_ci original texture, the contents of the memory are reinterpreted in the same 4365bd8deadSopenharmony_ci manner as for image bindings described in section 3.8.X (Texture Image 4375bd8deadSopenharmony_ci Loads and Stores). 4385bd8deadSopenharmony_ci 4395bd8deadSopenharmony_ciDependencies on EXT_texture_view: 4405bd8deadSopenharmony_ci 4415bd8deadSopenharmony_ci As written, this extension incorporates some of the "view class" 4425bd8deadSopenharmony_ci terminology that is introduced by EXT_texture_view. However this is 4435bd8deadSopenharmony_ci only enough to define the equivalence classes and does not actually 4445bd8deadSopenharmony_ci imply the texture view capability. 4455bd8deadSopenharmony_ci 4465bd8deadSopenharmony_ci If EXT_texture_view is supported, Table 4.X.2 should be replaced with 4475bd8deadSopenharmony_ci a reference to Table 3.X.2 from that extension instead. 4485bd8deadSopenharmony_ci 4495bd8deadSopenharmony_ciDependencies on EXT_texture_buffer 4505bd8deadSopenharmony_ci 4515bd8deadSopenharmony_ci If EXT_texture_buffer is not supported, then remove all references 4525bd8deadSopenharmony_ci to TEXTURE_BUFFER_EXT. 4535bd8deadSopenharmony_ci 4545bd8deadSopenharmony_ciDependencies on EXT_texture_cube_map_array 4555bd8deadSopenharmony_ci 4565bd8deadSopenharmony_ci If EXT_texture_cube_map_array is not supported, then remove all references 4575bd8deadSopenharmony_ci to TEXTURE_CUBE_MAP_ARRAY_EXT. 4585bd8deadSopenharmony_ci 4595bd8deadSopenharmony_ciDependencies on EXT_texture_compression_s3tc 4605bd8deadSopenharmony_ci 4615bd8deadSopenharmony_ci If EXT_texture_compression_s3tc is not supported, remove any 4625bd8deadSopenharmony_ci references to S3TC compressed texture formats. 4635bd8deadSopenharmony_ci 4645bd8deadSopenharmony_ciDependencies on EXT_texture_compression_rgtc 4655bd8deadSopenharmony_ci 4665bd8deadSopenharmony_ci If EXT_texture_compression_rgtc is not supported, remove any 4675bd8deadSopenharmony_ci references to the RGTC compressed texture formats. 4685bd8deadSopenharmony_ci 4695bd8deadSopenharmony_ciDependencies on EXT_texture_compression_bptc 4705bd8deadSopenharmony_ci 4715bd8deadSopenharmony_ci If EXT_texture_compression_bptc is not supported, remove any 4725bd8deadSopenharmony_ci references to the PBTC compressed texture formats. 4735bd8deadSopenharmony_ci 4745bd8deadSopenharmony_ciDependencies on KHR_texture_compression_astc_ldr 4755bd8deadSopenharmony_ci 4765bd8deadSopenharmony_ci If KHR_texture_compression_astc_ldr is not supported, remove any 4775bd8deadSopenharmony_ci references to the ASTC LDR compressed texture formats. 4785bd8deadSopenharmony_ci 4795bd8deadSopenharmony_ciDependencies on KHR_texture_compression_astc_hdr 4805bd8deadSopenharmony_ci 4815bd8deadSopenharmony_ci If KHR_texture_compression_astc_hdr is not supported, remove any 4825bd8deadSopenharmony_ci references to the ASTC HDR compressed texture formats. 4835bd8deadSopenharmony_ci 4845bd8deadSopenharmony_ciDependencies on OES_texture_compression_astc 4855bd8deadSopenharmony_ci 4865bd8deadSopenharmony_ci If OES_texture_compression_astc is not supported, remove any 4875bd8deadSopenharmony_ci references to the ASTC 3D compressed texture formats. 4885bd8deadSopenharmony_ci 4895bd8deadSopenharmony_ciErrors 4905bd8deadSopenharmony_ci 4915bd8deadSopenharmony_ci CopyImageSubDataEXT may fail with any of the following errors: 4925bd8deadSopenharmony_ci 4935bd8deadSopenharmony_ci INVALID_ENUM is generated 4945bd8deadSopenharmony_ci * if either <srcTarget> or <dstTarget> 4955bd8deadSopenharmony_ci - is not RENDERBUFFER or a valid non-proxy texture target 4965bd8deadSopenharmony_ci - is TEXTURE_BUFFER, or 4975bd8deadSopenharmony_ci - is one of the cubemap face selectors described in table 3.17, 4985bd8deadSopenharmony_ci * if the target does not match the type of the object. 4995bd8deadSopenharmony_ci 5005bd8deadSopenharmony_ci INVALID_OPERATION is generated 5015bd8deadSopenharmony_ci * if either object is a texture and the texture is not complete, 5025bd8deadSopenharmony_ci * if the source and destination formats are not compatible, 5035bd8deadSopenharmony_ci * if the source and destination number of samples do not match, 5045bd8deadSopenharmony_ci * if one image is compressed and the other is uncompressed and the 5055bd8deadSopenharmony_ci block size of compressed image is not equal to the texel size 5065bd8deadSopenharmony_ci of the compressed image. 5075bd8deadSopenharmony_ci 5085bd8deadSopenharmony_ci INVALID_VALUE is generated 5095bd8deadSopenharmony_ci * if either <srcName> or <dstName> does not correspond to a valid 5105bd8deadSopenharmony_ci renderbuffer or texture object according to the corresponding 5115bd8deadSopenharmony_ci target parameter, or 5125bd8deadSopenharmony_ci * if the specified level is not a valid level for the image, or 5135bd8deadSopenharmony_ci * if the dimensions of the either subregion exceeds the boundaries 5145bd8deadSopenharmony_ci of the corresponding image object, or 5155bd8deadSopenharmony_ci * if the image format is compressed and the dimensions of the 5165bd8deadSopenharmony_ci subregion fail to meet the alignment constraints of the format. 5175bd8deadSopenharmony_ci 5185bd8deadSopenharmony_ciSample Code 5195bd8deadSopenharmony_ci 5205bd8deadSopenharmony_ci TBD 5215bd8deadSopenharmony_ci 5225bd8deadSopenharmony_ciIssues 5235bd8deadSopenharmony_ci 5245bd8deadSopenharmony_ci Note: these issues apply specifically to the definition of 5255bd8deadSopenharmony_ci EXT_copy_image, which is based on the OpenGL ARB_copy_image extension 5265bd8deadSopenharmony_ci as updated by OpenGL 4.4. Resolved issues from ARB_copy_image have 5275bd8deadSopenharmony_ci been removed but remain largely applicable to this extension. That 5285bd8deadSopenharmony_ci extension can be found in the OpenGL Registry. 5295bd8deadSopenharmony_ci 5305bd8deadSopenharmony_ci (1) What functionality was removed from ARB_copy_image? 5315bd8deadSopenharmony_ci 5325bd8deadSopenharmony_ci - removed mention of proxy textures, TEXTURE_1D_ARRAY target 5335bd8deadSopenharmony_ci - removed mention of RGBA16, RGBA16_SNORM texture formats 5345bd8deadSopenharmony_ci - removed compatibility profile interactions and negative borders 5355bd8deadSopenharmony_ci 5365bd8deadSopenharmony_ci (2) What functionality was changed or added relative to ARB_copy_image? 5375bd8deadSopenharmony_ci 5385bd8deadSopenharmony_ci - added compatibility class definition to avoid texture_view dependency 5395bd8deadSopenharmony_ci - added ability to copy to/from ETC2/EAC formats and uncompressed formats 5405bd8deadSopenharmony_ci - added ability to copy between ETC2/EAC formats that are compatible 5415bd8deadSopenharmony_ci - added ability to copy to/from ASTC formats and uncompressed formats 5425bd8deadSopenharmony_ci - added ability to copy between ASTC formats that are compatible 5435bd8deadSopenharmony_ci 5445bd8deadSopenharmony_ci (3) Is copying from/to images with ETC2/EAC compressed texture formats 5455bd8deadSopenharmony_ci defined? 5465bd8deadSopenharmony_ci 5475bd8deadSopenharmony_ci RESOLVED: Yes. This extension adds support for copying between ETC2/EAC 5485bd8deadSopenharmony_ci compressed texture formats that belong to the same view class. It also 5495bd8deadSopenharmony_ci adds the ability to copy between uncompressed texture formats and 5505bd8deadSopenharmony_ci compressed ETC2/EAC texture formats and in a similar fashion the other 5515bd8deadSopenharmony_ci compressed formats. This was requirement was not added to GL 4.x, 5525bd8deadSopenharmony_ci because at the time GL 4.x HW did not natively support ETC2/EAC compressed 5535bd8deadSopenharmony_ci textures, and thus it was expected that they may be uncompressed or 5545bd8deadSopenharmony_ci transcoded. It is expected that this may be a very useful capability 5555bd8deadSopenharmony_ci for mobile parts and so this capability is included here. For GL 4.x 5565bd8deadSopenharmony_ci hardware that wishes to expose this capability, it will need to 5575bd8deadSopenharmony_ci transparently handle these copies as if the compressed formats where 5585bd8deadSopenharmony_ci natively supported. 5595bd8deadSopenharmony_ci 5605bd8deadSopenharmony_ci (4) Is copying from/to images with ASTC compressed texture formats 5615bd8deadSopenharmony_ci defined? 5625bd8deadSopenharmony_ci 5635bd8deadSopenharmony_ci RESOLVED. Yes, as in issue 3. Any of the ASTC LHR, HDR, or 3D formats 5645bd8deadSopenharmony_ci that are supported may be copied within their compatibility class. 5655bd8deadSopenharmony_ci 5665bd8deadSopenharmony_ci (5) What is the behavior when the source and destination images are the 5675bd8deadSopenharmony_ci same? 5685bd8deadSopenharmony_ci 5695bd8deadSopenharmony_ci RESOLVED: This was also not stated in GL 4.4, ARB_copy_image or 5705bd8deadSopenharmony_ci NV_copy_image. This was clarified to be undefined behaviour in Bug 11355. 5715bd8deadSopenharmony_ci We follow that resolution here. 5725bd8deadSopenharmony_ci 5735bd8deadSopenharmony_ci (6) Should the R16, RG16, RGB16, and RGBA16 (and _SNORM) texture formats 5745bd8deadSopenharmony_ci be supported? 5755bd8deadSopenharmony_ci 5765bd8deadSopenharmony_ci RESOLVED. No. OpenGL ES 3.0 does not support these formats. They were 5775bd8deadSopenharmony_ci considered for late addition to OpenGL ES 3.1 in Bug 11366, but didn't 5785bd8deadSopenharmony_ci make the cut. In the absence of another extension to add them, they 5795bd8deadSopenharmony_ci are not supported here either. 5805bd8deadSopenharmony_ci 5815bd8deadSopenharmony_ciRevision History 5825bd8deadSopenharmony_ci 5835bd8deadSopenharmony_ci Rev. Date Author Changes 5845bd8deadSopenharmony_ci ---- ---------- -------- ----------------------------------------- 5855bd8deadSopenharmony_ci 5 03/26/2014 dkoch Update contributors. 5865bd8deadSopenharmony_ci 4 03/10/2014 Jon Leech Change suffix to EXT. 5875bd8deadSopenharmony_ci 3 02/12/2013 dkoch Resolved issue 6. 5885bd8deadSopenharmony_ci 2 12/18/2013 dkoch Finish the compressed texture interactions. 5895bd8deadSopenharmony_ci Adding support for ETC2/EAC and ASTC textures. 5905bd8deadSopenharmony_ci Eliminate the dependency on EXT_texture_view. 5915bd8deadSopenharmony_ci Add language for source and destination overlap. 5925bd8deadSopenharmony_ci Resolved issues 3,4,5. Added issue 6. 5935bd8deadSopenharmony_ci 1 12/02/2013 dkoch Initial revision based on ARB_copy_image rev 4. 594