| Name |
| |
| ANGLE_yuv_internal_format |
| |
| Name Strings |
| |
| GL_ANGLE_yuv_internal_format |
| |
| Contributors |
| |
| Mohan Maiya, Samsung |
| Jamie Madill, Google |
| |
| Contacts |
| |
| Mohan Maiya, Samsung (m.maiya 'at' samsung 'dot' com) |
| |
| Notice |
| |
| Copyright (c) 2021 The Khronos Group Inc. Copyright terms at |
| http://www.khronos.org/registry/speccopyright.html |
| |
| Status |
| |
| Draft. |
| |
| Version |
| |
| Version 5, June 23, 2021 |
| |
| Number |
| |
| OpenGL ES Extension ### |
| |
| Dependencies |
| |
| OpenGL ES 3.0 is required. |
| |
| Overview |
| |
| This extension introduces a few sized internal YUV texture formats |
| that can be used to create immutable textures using the TexStorage2D API. |
| The only valid texture target supported is TEXTURE_2D, an INVALID_ENUM |
| error is generated otherwise. There is no mipmap support and only NEAREST |
| minification and magnification filters are supported. |
| |
| Support for the extension only requires the support of the commonly used 8-bit |
| 2-plane YUV format listed in the "New Tokens" section, refer to [fn1] for details |
| about the formats and layout. It is up to the implementation to extend support |
| for the other YUV formats. |
| |
| [fn1] : https://www.fourcc.org/yuv.php |
| |
| New Types |
| |
| None. |
| |
| New Procedures and Functions |
| |
| None. |
| |
| New Tokens |
| |
| List of non-standard YUV internal formats |
| |
| // 8-bit YUV formats |
| G8_B8R8_2PLANE_420_UNORM_ANGLE 0x96B1 |
| G8_B8_R8_3PLANE_420_UNORM_ANGLE 0x96B2 |
| |
| // 10-bit YUV formats |
| G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_ANGLE 0x96B3 |
| G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_ANGLE 0x96B4 |
| |
| // 12-bit YUV formats |
| G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_ANGLE 0x96B5 |
| G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_ANGLE 0x96B6 |
| |
| // 16-bit YUV formats |
| G16_B16R16_2PLANE_420_UNORM_ANGLE 0x96B7 |
| G16_B16_R16_3PLANE_420_UNORM_ANGLE 0x96B8 |
| |
| |
| Issues |
| |
| 1. How was the new format list chosen? |
| |
| Commonly used planar YUV formats across various platforms were surveyed, |
| including new platforms that support HDR content. A subset of those were |
| chosen to be required. It is up to the implementations to extend support |
| for the rest of the formats. |
| |
| 2. What is the colorspace of image data of a texture created with the new formats? |
| |
| The texture or sampler parameter APIs can be expanded to indicate the colorspace |
| in a layered extension and is outside the scope of this extension. The colorspace |
| for textures with the above YUV formats is assumed to be ITU-R BT.601 with YUV |
| values in limited range. Refer to ITU-R BT.601 spec for further details. |
| |
| Revision History |
| |
| #5 - (June 23, 2021) Mohan Maiya |
| Renamed format enums from *_ANGLEX to *_ANGLE |
| |
| #4 - (June 23, 2021) Mohan Maiya |
| Removed references to GL_OES_EGL_image_external |
| and restricted the spec to simply introducing new |
| sized internal YUV formats. Also updated enum values |
| |
| #3 - (June 8, 2021) Mohan Maiya |
| Clarification regarding default colorspace |
| |
| #2 - (May 10, 2021) Mohan Maiya |
| Update overview section to specify support for |
| immutable textures |
| |
| #1 - (April 10, 2021) Mohan Maiya |
| Original draft |