Name

    EGL_ANGLE_display_robust_resource_initialization.txt

Name Strings

    EGL_ANGLE_display_robust_resource_initialization

Contributors

    Geoff Lang, Google
    Ken Russell, Google

Contacts

    Shannon Woods, Google (shannonwoods 'at' google.com)

Status

    Draft

Version

    Version 1, January 7, 2015

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.

    For EGL 1.4 contexts, requires EGL_EXT_client_extensions and
    EGL_EXT_platform_base, but funtionality is identical.

Overview

    This extension allows initializing an OpenGL ES Display supporting
    robust resource initialization.

New Types

    None

New Procedures and Functions

    None

New Tokens

    Accepted as an attribute name in the <*attrib_list> argument to
    eglGetPlatformDisplay:

        EGL_DISPLAY_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.2:

    "If the attribute EGL_DISPLAY_ROBUST_RESOURCE_INITIALIZATION_ANGLE
    is set to EGL_TRUE, a Display supporting <robust resource initialization>
    will be returned. OpenGL ES contexts created on this display must support
    the ANGLE_robust_resource_initialization extension, or equivalent core API
    functionality.
    If the implementation does not support robust resource initialization,
    and EGL_DISPLAY_ROBUST_RESOURCE_INITIALIZATION_ANGLE is EGL_TRUE,
    EGL_NO_DISPLAY will be returned.
    The default value of EGL_DISPLAY_ROBUST_RESOURCE_INITIALIZATION_ANGLE
    is EGL_FALSE."

Issues

    (1) Should this be a Display or Context creation extension?

    RESOLVED: 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.

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.