Edit

kc3-lang/angle/extensions/EGL_ANGLE_d3d_texture_client_buffer.txt

Branch :

  • Show log

    Commit

  • Author : Bryan Bernhart (Intel Americas Inc)
    Date : 2017-04-13 09:52:23
    Hash : 151d5de6
    Message : Enable MSAA for texture client buffers Enhancement to the EGL_ANGLE_d3d_texture_client_buffer extension to allow use of a shared D3D texture that can be multi-sampled. BUG=angleproject:1917 Change-Id: Iaf59bbd575a5dfb29345f55b549bc4017bf2d7d0 Reviewed-on: https://chromium-review.googlesource.com/446907 Reviewed-by: Bryan Bernhart <bryan.bernhart@intel.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>

  • extensions/EGL_ANGLE_d3d_texture_client_buffer.txt
  • Name
    
        ANGLE_d3d_texture_client_buffer
    
    Name Strings
    
        EGL_ANGLE_d3d_texture_client_buffer
    
    Contributors
    
        Geoff Lang
    
    Contacts
    
        Geoff Lang, Google Inc. (geofflang 'at' google.com)
    
    Status
    
        Draft
    
    Version
    
        Version 1, Oct 5, 2016
    
    Number
    
        EGL Extension #??
    
    Dependencies
    
        This extension is written against the wording of the EGL 1.4
        Specification.
    
        References the EGL_ANGLE_device_d3d extension.
    
    Overview
    
        This extension allows creating EGL surfaces from D3D texture objects.
    
    New Types
    
        None
    
    New Procedures and Functions
    
        None
    
    New Tokens
    
        Accepted in the <buftype> parameter of eglCreatePbufferFromClientBuffer:
    
            EGL_D3D_TEXTURE_ANGLE            0x33A3
    
    Additions to Chapter 3 of the EGL 1.4 Specification (EGL Functions and Errors)
    
        Replace the last sentence of paragraph 1 of Section 3.5.3 with the
        following text.
        "Currently, the only client API resources which may be bound in this
        fashion are OpenVG VGImage objects and Direct3D texture objects."
    
        Replace the last sentence of paragraph 2 ("To bind a client API...") of
        Section 3.5.3 with the following text.
        "When <buftype> is EGL_OPENVG_IMAGE or EGL_D3D_TEXTURE_ANGLE, the width and
        height of the pbuffer are determined by the width and height of <buffer>."
    
        Replace the third paragraph of Section 3.5.3 with the following text.
        "<buftype> specifies the type of buffer to be bound. The only allowed values
        of <buftype> are EGL_OPENVG_IMAGE and EGL_D3D_TEXTURE_ANGLE".
    
        Append the following text to the fourth paragraph of Section 3.5.3.
        "When <buftype> is EGL_D3D_TEXTURE_ANGLE, <buffer> must be
        a valid D3D texture object, cast into the type EGLClientBuffer. See table
        egl.restrictions for acceptable texture object types and formats. If the
        EGL_ANGLE_device_d3d extension is present, the provided D3D texture object
        must have been created by the same D3D device queried from the display.
        If these requirements are not met, an EGL_BAD_PARAMETER error is
        generated."
    
        ---------------------------------------------------------------------------
        Resource Type      Resource Restrictions
        ---------------------------------------------------------------------------
        IDirect3DTexture9  Memory pool must be D3DPOOL_DEFAULT. Format must be
                           D3DFMT_R8G8B8, D3DFMT_A8R8G8B8, D3DFMT_A16B16G16R16F or
                           D3DFMT_A32B32G32R32F.
        ID3D11Texture2D    Usage flags must be D3D11_USAGE_DEFAULT. Format must be
                           DXGI_FORMAT_R8G8B8A8_UNORM,
                           DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
                           DXGI_FORMAT_B8G8R8A8_UNORM,
                           DXGI_FORMAT_B8G8R8A8_UNORM_SRGB,
                           DXGI_FORMAT_R16G16B16A16_FLOAT or
                           DXGI_FORMAT_R32G32B32A32_FLOAT.
       --------------------------------------------------------------------------
        Table egl.restrictions - Restrictions on D3D resources that can be used
        as a <buffer>.
        --------------------------------------------------------------------------
    
        Append to the end of Section 3.5.3.
        "When a pbuffer is created with type EGL_D3D_TEXTURE_ANGLE, the contents
        of the associcated D3D texture object are undefined while the pbuffer is
        the current read surface, draw surface or bound to a client texture."
    
    Issues
    
        1. What renderers allow the use of a multi-sampled texture?
    
        PROPOSED: Mutli-sampled texture support is currently limited to D3D11. Additionally,
        the client is responsible for resolving the texture.
    
    Revision History
    
        Version 1, 2016/10/05 - first draft.