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