Edit

kc3-lang/angle/extensions/EGL_ANGLE_robust_resource_initialization.txt

Branch :

  • Show log

    Commit

  • Author : Geoff Lang
    Date : 2017-10-05 14:01:47
    Hash : b433e872
    Message : Change robust resource init into a context creation attribute. Enabled support on OpenGL even through the extension is not fully implemented so that testing with Chromium/Passthrough commmand decoder is still possible. BUG=angleproject:1635 Change-Id: Ia417b1779aace1eae19514325701a79cd33f4ef3 Reviewed-on: https://chromium-review.googlesource.com/678479 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>

  • extensions/EGL_ANGLE_robust_resource_initialization.txt
  • Name
    
        ANGLE_robust_resource_initialization
    
    Name Strings
    
        EGL_ANGLE_robust_resource_initialization
    
    Contributors
    
        Geoff Lang, Google
        Ken Russell, Google
    
    Contacts
    
        Shannon Woods, Google (shannonwoods 'at' google.com)
    
    Status
    
        Draft
    
    Version
    
        Version 4, September 19, 2017
    
    Number
    
        EGL Extension TBD
    
    Dependencies
    
        This extension is written against the wording of the EGL 1.5
        specification.
    
        An OpenGL ES implementation supporting ANGLE_robust_resource_initialization
        or an implementation supporting equivalent functionality is required.
    
    Overview
    
        This extension allows creating an OpenGL ES context or EGL surface
        supporting robust resource initialization.
    
    New Types
    
        None
    
    New Procedures and Functions
    
        None
    
    New Tokens
    
        Accepted as an attribute name by eglCreateContext, eglQueryContext,
        eglCreateWindowSurface, eglCreatePbufferSurface, eglCreatePixmapSurface,
        and eglQuerySurface:
    
            EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE    0x3453
    
    Additions to the EGL 1.5 Specification
    
        Add a new section entitled "OpenGL ES Robust Resource Initialization"
        to section 3.7.1:
    
        "If the attribute EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE
        is set to EGL_TRUE, a context supporting <robust resource initialization>
        will be created. OpenGL ES contexts must support the
        ANGLE_robust_resource_initialization extension, or equivalent core API
        functionality. This attribute is supported only for OpenGL ES contexts.
        The default value of EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE
        is EGL_FALSE."
    
        Add a new paragraph to section 3.7.4 "Context Queries" under
        eglQueryContext:
    
        "Querying EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE returns if
        the context was created using robust initialization."
    
        Add a new paragrah to section 3.5.1 "Creating On-Screen Rendering
        Surfaces" and section 3.5.2 "Creating Off-Screen Rendering Surfaces":
    
        "EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE specifies if the pixel
        values of the surface are initialized.  If its value is EGL_TRUE then all
        pixel values in the surface are initialized to zero, otherwise the contents
        are undefined. The default value of
        EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE is EGL_FALSE."
    
        Add a new paragrah to section 3.5.6 "Surface Attributes" under
        eglQuerySurface:
    
        "Querying EGL_CONTEXT_ROBUST_RESOURCE_INITIALIZATION_ANGLE returns if
        the surface was created using robust initialization."
    
        Modify the 2nd paragraph of section 3.10.1 "Posting to a Window":
    
        "... The contents of the color buffer are undefined if the value of the
        EGL_SWAP_BEHAVIOR attribute of surface is not EGL_BUFFER_PRESERVED and
        the value of the EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE is
        EGL_FALSE. ..."
    
    Issues
    
        (1) Should this be a Display or Context creation extension?
    
        RESOLVED (3): Making this a Context creation extension has complications in
        the implementation - what happens to resources shared between Contexts
        with and without the extension enabled? Also for display-created resources,
        such as those used in the D3D11 SwapChain, there's no way to specify if
        we want them robustly initialized. Hence it is clearer to specify this
        extension as a Display extension.
    
        RESOLVED (4): This extension has been moved back to a context/surface
        creation attribute. This makes the extension much easier to detect before
        the GL context is created.
    
    Revision History
    
        Version 1, 2015/01/07 - first draft.
        Version 2, 2017/03/01 - renamed extension and enum.
        Version 3, 2017/05/31 - renamed extension and made into display extension.
        Version 4, 2017/09/19 - renamed extension and changed into a
                                context/surface creation attribute.