Adds initial support for VK_KHR_wayland_surface.
authorIason Paraskevopoulos <iason.paraskevopoulos@arm.com>
Sun, 31 Jan 2021 20:09:53 +0000 (20:09 +0000)
committerIason Paraskevopoulos <iason.paraskevopoulos@arm.com>
Tue, 9 Feb 2021 18:22:09 +0000 (18:22 +0000)
commit8dc4d923fff07471c9748721934048043bd515f7
treeb28b83b2dd36005f46646e07b0c0567d0f375f76
parent950cdd406a8d6b2546d450a32fdc1fc4d9bb4491
Adds initial support for VK_KHR_wayland_surface.

Very basic Wayland support is implemented by importing
memory with VK_EXT_image_drm_format_modifiers.
The current implementation requires an external system
memory allocator. An API for this allocator is defined
in util/wsialloc/wsialloc.h and an implementation using
the ION memory allocator is included.

Outstanding issues:
 * This is an initial prototype for Wayland support and
   has many outstanding TODOs which need addressing to
   properly use the Wayland protocol.
 * Using ICD Exported memory instead of a system allocator
   is not implemented.

Wayland support is still experimental and outstanding issues
will be fixed in future commits.

Change-Id: I1b0d5991e15ff1cf25ebbab3392a631b021e8c17
Signed-off-by: Rosen Zhelev <rosen.zhelev@arm.com>
Signed-off-by: Iason Paraskevopoulos <iason.paraskevopoulos@arm.com>
23 files changed:
CMakeLists.txt
README.md
layer/VkLayer_window_system_integration.json
layer/layer.cpp
layer/private_data.cpp
layer/private_data.hpp
layer/surface_api.hpp
util/drm/drm_utils.cpp [new file with mode: 0644]
util/drm/drm_utils.hpp [new file with mode: 0644]
util/drm/format_table.c [new file with mode: 0644]
util/drm/format_table.h [new file with mode: 0644]
util/wsialloc/wsialloc.h [new file with mode: 0644]
util/wsialloc/wsialloc_ion.c [new file with mode: 0644]
wsi/surface_properties.hpp
wsi/swapchain_base.cpp
wsi/wayland/surface_properties.cpp [new file with mode: 0644]
wsi/wayland/surface_properties.hpp [new file with mode: 0644]
wsi/wayland/swapchain.cpp [new file with mode: 0644]
wsi/wayland/swapchain.hpp [new file with mode: 0644]
wsi/wayland/swapchain_wl_helpers.cpp [new file with mode: 0644]
wsi/wayland/swapchain_wl_helpers.hpp [new file with mode: 0644]
wsi/wsi_factory.cpp
wsi/wsi_factory.hpp