Name

    ANGLE_platform_angle_vulkan

Name Strings

    EGL_ANGLE_platform_angle_vulkan

Contributors

    Jamie Madill, Google

Contacts

    Jamie Madill, Google (jmadill 'at' google 'dot' com)

Status

    Draft

Version

    Version 1, 2016-11-17

Number

    EGL Extension XXX

Extension Type

    EGL client extension

Dependencies

    Requires ANGLE_platform_angle.

Overview

    This extension enables selection of Vulkan display types.

New Types

    None

New Procedures and Functions

    None

New Tokens

    Accepted as values for the EGL_PLATFORM_ANGLE_TYPE_ANGLE attribute:

        EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE               0x3450

    Accepted as an attribute name in the <attrib_list> argument of
    eglGetPlatformDisplayEXT:

        EGL_PLATFORM_ANGLE_ENABLE_VALIDATION_LAYER_ANGLE   0x3451

Additions to the EGL Specification

    None.

New Behavior

    To request a display that is backed by a Vulken driver, the value of
    EGL_PLATFORM_ANGLE_TYPE_ANGLE should be
    EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE.

    If EGL_PLATFORM_ANGLE_ENABLE_VALIDATION_LAYER_ANGLE is specified, it
    controls enabling the standard Vulkan validation layers. EGL_TRUE enables
    the validation and EGL_FALSE disables it. Any value other than these will
    result in an error. If the flag is not specified, validation may default
    to either enabled or disabled, depending on compile-time parameters in the
    implementation.

    If EGL_PLATFORM_ANGLE_MAX_VERSION_MAJOR_ANGLE and
    EGL_PLATFORM_ANGLE_MAX_VERSION_MINOR_ANGLE are not specified, the
    implementation will decide which version of Vulkan to instantiate. If they
    are specified, it will choose a version that is lower or equal to the
    specified major and minor versions. The only current values accepted for
    major and minor version are 1 for major and 0 for minor.

Issues

    1) Would it be better to specify validation layers individually?

       RESOLVED: It would give more fined grained control, but the layers
       are sensitive to ordering, and there may be new ones added or old ones
       removed, this abstracts the logic into a simpler form. The validation
       layers maintainers are also moving towards a single-layer model from
       the current multiple layers approach.

    2) Should the validation layers default to on, off, or no guarantee?

       Defaulting to off offers some consistency. However, it's customary for
       some applications like ANGLE to turn on debugging features by default
       in Debug builds.

    3) Should ANGLE always instantiate the highest available version of Vulkan?

       RESOLVED: It's possible that in a future implementation of Vulkan there
       may be driver issues present only on some version of Vulkan, and there's
       no explicit guarantee higher versions will be more stable. Hence, we should
       give ANGLE some flexiblity in this regard and leave this unspecified.

Revision History

    Version 1, 2016-11-17 (Jamie Madill)
      - Initial draft
