Edit

kc3-lang/angle/extensions/ANGLE_yuv_internal_format.txt

Branch :

  • Show log

    Commit

  • Author : Mohan Maiya
    Date : 2021-07-12 13:28:54
    Hash : e66e3344
    Message : Vulkan: Add GL_ANGLE_yuv_internal_format extension 1. Add a new extension to support creation of immutable textures with sized internal YUV formats 2. Rename YUV format enums from *_ANGLEX to *_ANGLE 3. Move YUV format enums from angleutils.h to glext_angle.h Bug: angleproject:5773 Change-Id: Ibfe732f4c9a4a536be56481f33e4768f6227c212 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2820153 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>

  • extensions/ANGLE_yuv_internal_format.txt
  • 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