Hash :
61180d01
        
        Author :
  
        
        Date :
2020-10-12T16:40:13
        
      
Reland "Add support for Linux vulkan backend with VK_KHR_display" This is a reland of a7bb6a9b15ddeb8497523f8871deb25de2676d9f Original change's description: > Add support for Linux vulkan backend with VK_KHR_display > > Implement Linux simple display mode with vulkan backend > through VK_KHR_display. > > Added value 'EGL_PLATFORM_VULKAN_DISPLAY_MODE_SIMPLE_ANGLE' for > attribute EGL_PLATFORM_ANGLE_NATIVE_PLATFORM_TYPE_ANGLE to identify > the new simple display mode. Also reserved > EGL_PLATFORM_VULKAN_DISPLAY_MODE_HEADLESS_ANGLE for headless mode. > > How to enable: > Add > > ``` > use_x11=false > angle_vulkan_display_mode="simple" # default value > ``` > > into args.gn, then compile with linux vulkan args. > > Bug: angleproject:5214 > Change-Id: I1247585b9de8b55df106aba99322281f1c183203 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2494320 > Commit-Queue: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:5214 Change-Id: I3921f6cb292c86658f39e739a878baad1ef64dba Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2515327 Commit-Queue: Xiaoxuan Liu <xiaoxuan.liu@arm.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
Name
    ANGLE_vulkan_display
Name Strings
    EGL_ANGLE_vulkan_display
Contributors
    Xiaoxuan Liu, Arm Ltd.
    Sunny Sun, Arm Ltd.
Contacts
    Xiaoxuan Liu, Arm Ltd. (xiaoxuan 'dot' liu 'at' arm 'dot' com)
Status
    Draft
Version
    Version 1, 2020-10-29
Number
    EGL Extension XXX
Extension Type
    EGL client extension
Dependencies
    Requires EGL_EXT_platform_angle_vulkan.
Overview
    This extension allows ANGLE to use simple display mode through
    VK_KHR_display without native platform support (e.g. X11, GBM).
    The EGLSurfaces to be created from native types only contain the
    basic width and height info.
New Types
    The basic structure to represent a display window, used by vulkan
    backend to create valid display with VK_KHR_display.
        typedef struct displayWindow
        {
            khronos_uint16_t width;
            khronos_uint16_t height;
        } DisplayWindow;
New Procedures and Functions
    None
New Tokens
    Accepted as values for the EGL_PLATFORM_ANGLE_NATIVE_PLATFORM_TYPE_ANGLE
    attribute:
        EGL_PLATFORM_VULKAN_DISPLAY_MODE_SIMPLE_ANGLE 0x34A4
        EGL_PLATFORM_VULKAN_DISPLAY_MODE_HEADLESS_ANGLE 0x34A5
Additions to the EGL Specification
    None
New Behavior
    To obtain an simple EGLDisplay backed by a ANGLE vulkan with
    VK_KHR_display, request a display that is backed by a Vulkan driver
    through EGL_ANGLE_platform_angle_vulkan. And the value of attribute
    EGL_PLATFORM_ANGLE_NATIVE_PLATFORM_TYPE_ANGLE should be
    EGL_PLATFORM_VULKAN_DISPLAY_MODE_SIMPLE_ANGLE or
    EGL_PLATFORM_VULKAN_DISPLAY_MODE_HEADLESS_ANGLE.
    If an EGLDisplay is backed by  ANGLE vulkan VK_KHR_display and the
    value of attribute EGL_PLATFORM_ANGLE_NATIVE_PLATFORM_TYPE_ANGLE is
    set but neither EGL_PLATFORM_VULKAN_DISPLAY_MODE_SIMPLE_ANGLE or
    EGL_PLATFORM_VULKAN_DISPLAY_MODE_HEADLESS_ANGLE, then EGL_NO_DISPLAY
    should be returned.
Issues
    None
Revision History
    Version 1, 2020-10-29 (Xiaoxuan Liu)
      - Initial draft