Branch
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