Mesa (master): venus: properly enable WSI for different platforms
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Thu Apr 8 18:56:44 UTC 2021
Module: Mesa
Branch: master
Commit: fc3335a4720398645895b5259e3bfc6b736fa235
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=fc3335a4720398645895b5259e3bfc6b736fa235
Author: Yiwei Zhang <zzyiwei at chromium.org>
Date: Mon Apr 5 21:20:09 2021 +0000
venus: properly enable WSI for different platforms
Signed-off-by: Yiwei Zhang <zzyiwei at chromium.org>
Reviewed-by: Chia-I Wu <olvaffe at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10112>
---
src/virtio/vulkan/meson.build | 11 +++++++++--
src/virtio/vulkan/vn_device.c | 4 ++++
src/virtio/vulkan/vn_wsi.h | 13 +++++++++++++
3 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/src/virtio/vulkan/meson.build b/src/virtio/vulkan/meson.build
index 7843b85cf01..ccc704180dc 100644
--- a/src/virtio/vulkan/meson.build
+++ b/src/virtio/vulkan/meson.build
@@ -38,7 +38,6 @@ libvn_files = files(
'vn_ring.c',
'vn_renderer_virtgpu.c',
'vn_renderer_vtest.c',
- 'vn_wsi.c',
)
vn_deps = [
@@ -53,6 +52,14 @@ vn_flags = [
no_override_init_args,
]
+vn_libs = []
+
+if with_platform_wayland or with_platform_x11
+ libvn_files += files('vn_wsi.c')
+ vn_flags += '-DVN_USE_WSI_PLATFORM'
+ vn_libs += libvulkan_wsi
+endif
+
if with_platform_wayland
libvn_files += files('vn_wsi_wayland.c')
vn_deps += dep_wayland_client
@@ -74,7 +81,7 @@ libvulkan_virtio = shared_library(
include_directories : [
inc_include, inc_src, inc_vulkan_wsi, inc_virtio,
],
- link_with : [libvulkan_wsi],
+ link_with : vn_libs,
dependencies : [vn_deps],
c_args : [vn_flags],
link_args : [ld_args_bsymbolic, ld_args_gc_sections],
diff --git a/src/virtio/vulkan/vn_device.c b/src/virtio/vulkan/vn_device.c
index a92cc90b65e..6ad9806796f 100644
--- a/src/virtio/vulkan/vn_device.c
+++ b/src/virtio/vulkan/vn_device.c
@@ -39,9 +39,11 @@ static const struct vk_instance_extension_table
.KHR_get_physical_device_properties2 = true,
/* WSI */
+#ifdef VN_USE_WSI_PLATFORM
.KHR_get_surface_capabilities2 = true,
.KHR_surface = true,
.KHR_surface_protected_capabilities = true,
+#endif
#ifdef VK_USE_PLATFORM_WAYLAND_KHR
.KHR_wayland_surface = true,
#endif
@@ -1404,9 +1406,11 @@ vn_physical_device_get_supported_extensions(
{
*supported = (struct vk_device_extension_table){
/* WSI */
+#ifdef VN_USE_WSI_PLATFORM
.KHR_incremental_present = true,
.KHR_swapchain = true,
.KHR_swapchain_mutable_format = true,
+#endif
};
*recognized = (struct vk_device_extension_table){
diff --git a/src/virtio/vulkan/vn_wsi.h b/src/virtio/vulkan/vn_wsi.h
index c49065f8455..efed0401b26 100644
--- a/src/virtio/vulkan/vn_wsi.h
+++ b/src/virtio/vulkan/vn_wsi.h
@@ -15,10 +15,23 @@
#include "wsi_common.h"
+#ifdef VN_USE_WSI_PLATFORM
VkResult
vn_wsi_init(struct vn_physical_device *physical_dev);
void
vn_wsi_fini(struct vn_physical_device *physical_dev);
+#else
+static inline VkResult
+vn_wsi_init(UNUSED struct vn_physical_device *physical_dev)
+{
+ return VK_SUCCESS;
+}
+
+static inline void
+vn_wsi_fini(UNUSED struct vn_physical_device *physical_dev)
+{
+}
+#endif
#endif /* VN_WSI_H */
More information about the mesa-commit
mailing list