102f4aeb0Sopenharmony_ciName
202f4aeb0Sopenharmony_ci
302f4aeb0Sopenharmony_ci    ARM_image_format
402f4aeb0Sopenharmony_ci
502f4aeb0Sopenharmony_ciName Strings
602f4aeb0Sopenharmony_ci
702f4aeb0Sopenharmony_ci    EGL_ARM_image_format
802f4aeb0Sopenharmony_ci
902f4aeb0Sopenharmony_ciContributors
1002f4aeb0Sopenharmony_ci
1102f4aeb0Sopenharmony_ci    Jan-Harald Fredriksen
1202f4aeb0Sopenharmony_ci
1302f4aeb0Sopenharmony_ciContact
1402f4aeb0Sopenharmony_ci
1502f4aeb0Sopenharmony_ci    Jan-Harald Fredriksen (jan-harald.fredriksen 'at' arm.com)
1602f4aeb0Sopenharmony_ci
1702f4aeb0Sopenharmony_ciIP Status
1802f4aeb0Sopenharmony_ci
1902f4aeb0Sopenharmony_ci    No known IP claims.
2002f4aeb0Sopenharmony_ci
2102f4aeb0Sopenharmony_ciStatus
2202f4aeb0Sopenharmony_ci
2302f4aeb0Sopenharmony_ci    Complete
2402f4aeb0Sopenharmony_ci
2502f4aeb0Sopenharmony_ciVersion
2602f4aeb0Sopenharmony_ci
2702f4aeb0Sopenharmony_ci     Version 1 - February 18, 2020
2802f4aeb0Sopenharmony_ci
2902f4aeb0Sopenharmony_ciNumber
3002f4aeb0Sopenharmony_ci
3102f4aeb0Sopenharmony_ci    138
3202f4aeb0Sopenharmony_ci
3302f4aeb0Sopenharmony_ciDependencies
3402f4aeb0Sopenharmony_ci
3502f4aeb0Sopenharmony_ci    This extension is written against the wording of the EGL 1.4
3602f4aeb0Sopenharmony_ci    specification.
3702f4aeb0Sopenharmony_ci
3802f4aeb0Sopenharmony_ci    This extension reuses tokens from EGL_EXT_pixel_format_float.
3902f4aeb0Sopenharmony_ci
4002f4aeb0Sopenharmony_ciOverview
4102f4aeb0Sopenharmony_ci
4202f4aeb0Sopenharmony_ci    When an EGLImage is created from an existing image resource the
4302f4aeb0Sopenharmony_ci    implementation will deduce the format of the image data from that
4402f4aeb0Sopenharmony_ci    resource. In some cases, however, the implementation may not know how to
4502f4aeb0Sopenharmony_ci    map the existing image resource to a known format. This extension extends
4602f4aeb0Sopenharmony_ci    the list of attributes accepted by eglCreateImageKHR such that applications
4702f4aeb0Sopenharmony_ci    can tell the implementation how to interpret the data.
4802f4aeb0Sopenharmony_ci
4902f4aeb0Sopenharmony_ciNew Procedures and Functions
5002f4aeb0Sopenharmony_ci
5102f4aeb0Sopenharmony_ci    None.
5202f4aeb0Sopenharmony_ci
5302f4aeb0Sopenharmony_ciNew Tokens
5402f4aeb0Sopenharmony_ci
5502f4aeb0Sopenharmony_ci   Accepted as an attribute name in the <attrib_list> argument of
5602f4aeb0Sopenharmony_ci   eglCreateImageKHR:
5702f4aeb0Sopenharmony_ci        EGL_COLOR_COMPONENT_TYPE_EXT                   0x3339
5802f4aeb0Sopenharmony_ci
5902f4aeb0Sopenharmony_ci   Accepted as attribute values for the EGL_COLOR_COMPONENT_TYPE_EXT attribute
6002f4aeb0Sopenharmony_ci   of eglCreateImageKHR:
6102f4aeb0Sopenharmony_ci
6202f4aeb0Sopenharmony_ci        EGL_COLOR_COMPONENT_TYPE_FIXED_EXT              0x333A
6302f4aeb0Sopenharmony_ci        EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT              0x333B
6402f4aeb0Sopenharmony_ci        EGL_COLOR_COMPONENT_TYPE_UNSIGNED_INTEGER_ARM   0x3287
6502f4aeb0Sopenharmony_ci        EGL_COLOR_COMPONENT_TYPE_INTEGER_ARM            0x3288
6602f4aeb0Sopenharmony_ci        EGL_RED_SIZE                                    0x3024
6702f4aeb0Sopenharmony_ci        EGL_GREEN_SIZE                                  0x3023
6802f4aeb0Sopenharmony_ci        EGL_BLUE_SIZE                                   0x3022
6902f4aeb0Sopenharmony_ci        EGL_ALPHA_SIZE                                  0x3021
7002f4aeb0Sopenharmony_ci
7102f4aeb0Sopenharmony_ciModifications to the EGL 1.4 Specification
7202f4aeb0Sopenharmony_ci
7302f4aeb0Sopenharmony_ci   Add the following rows to Table 3.xx: Legal attributes for
7402f4aeb0Sopenharmony_ci   eglCreateImageKHR <attrib_list> parameter:
7502f4aeb0Sopenharmony_ci
7602f4aeb0Sopenharmony_ci      +------------------------------+------------------------------+-----------+---------------+
7702f4aeb0Sopenharmony_ci      | Attribute                    | Description                  | Valid     | Default Value |
7802f4aeb0Sopenharmony_ci      |                              |                              | <target>s |               |
7902f4aeb0Sopenharmony_ci      +------------------------------+------------------------------+-----------+---------------+
8002f4aeb0Sopenharmony_ci      | EGL_COLOR_COMPONENT_TYPE_EXT | Specifies the component      | All       | NA            |
8102f4aeb0Sopenharmony_ci      |                              | type the EGLImage source     |           |               |
8202f4aeb0Sopenharmony_ci      |                              | is interpreted as            |           |               |
8302f4aeb0Sopenharmony_ci      | EGL_RED_SIZE                 | Specifies the red component  | All       | NA            |
8402f4aeb0Sopenharmony_ci      |                              | size the EGLImage source     |           |               |
8502f4aeb0Sopenharmony_ci      |                              | is interpreted as            |           |               |
8602f4aeb0Sopenharmony_ci      | EGL_GREEN_SIZE               | Specifies the green component| All       | NA            |
8702f4aeb0Sopenharmony_ci      |                              | size the EGLImage source     |           |               |
8802f4aeb0Sopenharmony_ci      |                              | is interpreted as            |           |               |
8902f4aeb0Sopenharmony_ci      | EGL_BLUE_SIZE                | Specifies the blue component | All       | NA            |
9002f4aeb0Sopenharmony_ci      |                              | size the EGLImage source     |           |               |
9102f4aeb0Sopenharmony_ci      |                              | is interpreted as            |           |               |
9202f4aeb0Sopenharmony_ci      | EGL_ALPHA_SIZE               | Specifies the alpha component| All       | NA            |
9302f4aeb0Sopenharmony_ci      |                              | size the EGLImage source     |           |               |
9402f4aeb0Sopenharmony_ci      |                              | is interpreted as            |           |               |
9502f4aeb0Sopenharmony_ci      +------------------------------+------------------------------+-----------+---------------+
9602f4aeb0Sopenharmony_ci
9702f4aeb0Sopenharmony_ci    If <attrib_list> specifies values for EGL_COLOR_COMPONENT_TYPE_EXT,
9802f4aeb0Sopenharmony_ci    EGL_RED_SIZE, EGL_GREEN_SIZE, EGL_BLUE_SIZE, or EGL_ALPHA_SIZE, the
9902f4aeb0Sopenharmony_ci    implementation will treat these as hints for how to interpret the contents
10002f4aeb0Sopenharmony_ci    of <buffer>.
10102f4aeb0Sopenharmony_ci
10202f4aeb0Sopenharmony_ci    EGL_COLOR_COMPONENT_TYPE_EXT indicates the component type of <buffer> and
10302f4aeb0Sopenharmony_ci    must be either EGL_COLOR_COMPONENT_TYPE_FIXED_EXT for fixed-point,
10402f4aeb0Sopenharmony_ci    EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT for floating-point,
10502f4aeb0Sopenharmony_ci    EGL_COLOR_COMPONENT_TYPE_UNSIGNED_INTEGER_ARM for unsigned integer, or
10602f4aeb0Sopenharmony_ci    EGL_COLOR_COMPONENT_TYPE_INTEGER_ARM for integer components.
10702f4aeb0Sopenharmony_ci
10802f4aeb0Sopenharmony_ciAdd to the list of error conditions for eglCreateImageKHR:
10902f4aeb0Sopenharmony_ci
11002f4aeb0Sopenharmony_ci    * If the implementation is unable to interpret the contents <buffer>
11102f4aeb0Sopenharmony_ci      according to the component types and sizes in <attrib_list>, then a
11202f4aeb0Sopenharmony_ci      EGL_BAD_MATCH error is generated.
11302f4aeb0Sopenharmony_ci
11402f4aeb0Sopenharmony_ciIssues
11502f4aeb0Sopenharmony_ci
11602f4aeb0Sopenharmony_ci    1. Should there be a way to specify the component order?
11702f4aeb0Sopenharmony_ci
11802f4aeb0Sopenharmony_ci       Resolved. No, the component order is interpreted to be R, G, B, A,
11902f4aeb0Sopenharmony_ci       with R mapping to component 0. If the application needs a different
12002f4aeb0Sopenharmony_ci       component order it can use swizzle in the client API side or in the
12102f4aeb0Sopenharmony_ci       shader.
12202f4aeb0Sopenharmony_ci
12302f4aeb0Sopenharmony_ciRevision History
12402f4aeb0Sopenharmony_ci
12502f4aeb0Sopenharmony_ci    Version 1, 2020/02/18
12602f4aeb0Sopenharmony_ci      - Internal revisions
127