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