[packages/vulkan-sdk] Wayland support added to the loader
jajcus
jajcus at pld-linux.org
Wed Mar 2 21:45:42 CET 2016
commit 3421dbd19cc7acb1338ea34a1b9929717089cb80
Author: Jacek Konieczny <jajcus at jajcus.net>
Date: Wed Mar 2 21:43:41 2016 +0100
Wayland support added to the loader
note: validation layers won't work with Wayland surfaces
rel. 6
vulkan-sdk.spec | 9 ++--
wayland.patch | 148 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 154 insertions(+), 3 deletions(-)
---
diff --git a/vulkan-sdk.spec b/vulkan-sdk.spec
index f6ae15d..3d2d90a 100644
--- a/vulkan-sdk.spec
+++ b/vulkan-sdk.spec
@@ -3,6 +3,7 @@
%bcond_with tests # build with tests (require a working Vulkan
# driver (ICD))
%bcond_with icd # build experimental Vulkan drivers
+%bcond_without wayland # disable Wayland support in loader
%ifnarch %{x8664}
%undefine with_icd
@@ -18,7 +19,7 @@
%define tools_commit e5dccf86cf999ff9988be97337d0e3a3d508b085
# master branch
%define lg_commit 0a73713f0d664aa97a7e359f567a16d7c3fce359
-%define rel 5
+%define rel 6
Summary: LunarG Vulkan SDK
Name: vulkan-sdk
Version: 1.0.3.0
@@ -38,6 +39,7 @@ Patch1: LunarGLASS-CMakeLists.patch
Patch2: demos_out_of_src.patch
Patch3: rpath.patch
Patch4: loader_repo_name.patch
+Patch5: wayland.patch
URL: http://lunarg.com/vulkan-sdk/
%{?with_icd:BuildRequires: Mesa-libGL-devel}
BuildRequires: bison
@@ -148,6 +150,7 @@ mv VulkanTools-%{tools_commit} VulkanTools
%patch2 -p1
%patch3 -p1
%patch4 -p1
+%patch5 -p1
%if %{with icd}
mv LunarGLASS-%{lg_commit} LunarGLASS
@@ -166,8 +169,8 @@ cd Vulkan-LoaderAndValidationLayers/build
%cmake \
-DCMAKE_INSTALL_DATADIR=share \
-DCMAKE_INSTALL_SYSCONFDIR=etc \
- %{?with_tests:-DBUILD_TESTS=ON} \
- %{!?with_tests:-DBUILD_TESTS=OFF} \
+ -DBUILD_TESTS=%{?with_tests:ON}%{!?with_tests:OFF} \
+ -DBUILD_WSI_WAYLAND_SUPPORT=%{?with_wayland:ON}%{!?with_wayland:OFF} \
../
%{__make}
diff --git a/wayland.patch b/wayland.patch
new file mode 100644
index 0000000..5387161
--- /dev/null
+++ b/wayland.patch
@@ -0,0 +1,148 @@
+diff -dur vulkan-sdk-1.0.3.0.orig/Vulkan-LoaderAndValidationLayers/CMakeLists.txt vulkan-sdk-1.0.3.0/Vulkan-LoaderAndValidationLayers/CMakeLists.txt
+--- vulkan-sdk-1.0.3.0.orig/Vulkan-LoaderAndValidationLayers/CMakeLists.txt 2016-03-02 19:22:28.256866043 +0100
++++ vulkan-sdk-1.0.3.0/Vulkan-LoaderAndValidationLayers/CMakeLists.txt 2016-03-02 21:25:25.331130657 +0100
+@@ -19,21 +19,30 @@
+ add_definitions(-DVK_USE_PLATFORM_ANDROID_KHR)
+ set(DisplayServer Android)
+ elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+- add_definitions(-DVK_USE_PLATFORM_XCB_KHR)
+- set(DisplayServer Xcb)
++ # TODO: Basic support is present for Xlib but is untested.
++ # Mir support is stubbed in but unimplemented and untested.
++ option(BUILD_WSI_XCB_SUPPORT "Build XCB WSI support" ON)
++ option(BUILD_WSI_XLIB_SUPPORT "Build Xlib WSI support" OFF)
++ option(BUILD_WSI_WAYLAND_SUPPORT "Build Wayland WSI support" OFF)
++ option(BUILD_WSI_MIR_SUPPORT "Build Mir WSI support" OFF)
+
+-# TODO: Basic support is present for Xlib but is untested.
+-# Wayland/Mir support is stubbed in but unimplemented and untested.
++ set(DisplayServer Xcb)
+
+-# add_definitions(-DVK_USE_PLATFORM_XLIB_KHR)
+-# set(DisplayServer Xlib)
++ if (BUILD_WSI_XCB_SUPPORT)
++ add_definitions(-DVK_USE_PLATFORM_XCB_KHR)
++ endif()
+
+-# add_definitions(-DVK_USE_PLATFORM_MIR_KHR)
+-# set(DisplayServer Mir)
++ if (BUILD_WSI_XLIB_SUPPORT)
++ add_definitions(-DVK_USE_PLATFORM_XLIB_KHR)
++ endif()
+
+-# add_definitions(-DVK_USEPLATFORM_WAYLAND_KHR)
+-# set(DisplayServer Wayland)
++ if (BUILD_WSI_WAYLAND_SUPPORT)
++ add_definitions(-DVK_USE_PLATFORM_WAYLAND_KHR)
++ endif()
+
++ if (BUILD_WSI_MIR_SUPPORT)
++ add_definitions(-DVK_USE_PLATFORM_MIR_KHR)
++ endif()
+ else()
+ message(FATAL_ERROR "Unsupported Platform!")
+ endif()
+diff -dur vulkan-sdk-1.0.3.0.orig/Vulkan-LoaderAndValidationLayers/layers/swapchain.cpp vulkan-sdk-1.0.3.0/Vulkan-LoaderAndValidationLayers/layers/swapchain.cpp
+--- vulkan-sdk-1.0.3.0.orig/Vulkan-LoaderAndValidationLayers/layers/swapchain.cpp 2016-02-22 22:02:54.000000000 +0100
++++ vulkan-sdk-1.0.3.0/Vulkan-LoaderAndValidationLayers/layers/swapchain.cpp 2016-03-02 21:25:25.334464012 +0100
+@@ -222,6 +222,7 @@
+
+ my_data->instanceMap[instance].androidSurfaceExtensionEnabled =
+ true;
++ }
+ #endif // VK_USE_PLATFORM_ANDROID_KHR
+ #ifdef VK_USE_PLATFORM_MIR_KHR
+ if (strcmp(pCreateInfo->ppEnabledExtensionNames[i],
+@@ -229,6 +230,7 @@
+
+ my_data->instanceMap[instance].mirSurfaceExtensionEnabled =
+ true;
++ }
+ #endif // VK_USE_PLATFORM_MIR_KHR
+ #ifdef VK_USE_PLATFORM_WAYLAND_KHR
+ if (strcmp(pCreateInfo->ppEnabledExtensionNames[i],
+@@ -236,6 +238,7 @@
+
+ my_data->instanceMap[instance]
+ .waylandSurfaceExtensionEnabled = true;
++ }
+ #endif // VK_USE_PLATFORM_WAYLAND_KHR
+ #ifdef VK_USE_PLATFORM_WIN32_KHR
+ if (strcmp(pCreateInfo->ppEnabledExtensionNames[i],
+@@ -243,6 +246,7 @@
+
+ my_data->instanceMap[instance]
+ .win32SurfaceExtensionEnabled = true;
++ }
+ #endif // VK_USE_PLATFORM_WIN32_KHR
+ #ifdef VK_USE_PLATFORM_XCB_KHR
+ if (strcmp(pCreateInfo->ppEnabledExtensionNames[i],
+@@ -250,6 +254,7 @@
+
+ my_data->instanceMap[instance]
+ .xcbSurfaceExtensionEnabled = true;
++ }
+ #endif // VK_USE_PLATFORM_XCB_KHR
+ #ifdef VK_USE_PLATFORM_XLIB_KHR
+ if (strcmp(pCreateInfo->ppEnabledExtensionNames[i],
+@@ -258,8 +263,8 @@
+
+ my_data->instanceMap[instance]
+ .xlibSurfaceExtensionEnabled = true;
+-#endif // VK_USE_PLATFORM_XLIB_KHR
+ }
++#endif // VK_USE_PLATFORM_XLIB_KHR
+ }
+ }
+
+diff -dur vulkan-sdk-1.0.3.0.orig/Vulkan-LoaderAndValidationLayers/loader/loader.c vulkan-sdk-1.0.3.0/Vulkan-LoaderAndValidationLayers/loader/loader.c
+--- vulkan-sdk-1.0.3.0.orig/Vulkan-LoaderAndValidationLayers/loader/loader.c 2016-02-22 22:02:54.000000000 +0100
++++ vulkan-sdk-1.0.3.0/Vulkan-LoaderAndValidationLayers/loader/loader.c 2016-03-02 21:25:25.334464012 +0100
+@@ -1386,6 +1386,9 @@
+ #ifdef VK_USE_PLATFORM_XCB_KHR
+ LOOKUP_GIPA(GetPhysicalDeviceXcbPresentationSupportKHR, false);
+ #endif
++#ifdef VK_USE_PLATFORM_WAYLAND_KHR
++ LOOKUP_GIPA(GetPhysicalDeviceWaylandPresentationSupportKHR, false);
++#endif
+
+ #undef LOOKUP_GIPA
+
+diff -dur vulkan-sdk-1.0.3.0.orig/Vulkan-LoaderAndValidationLayers/loader/wsi.c vulkan-sdk-1.0.3.0/Vulkan-LoaderAndValidationLayers/loader/wsi.c
+--- vulkan-sdk-1.0.3.0.orig/Vulkan-LoaderAndValidationLayers/loader/wsi.c 2016-02-22 22:02:54.000000000 +0100
++++ vulkan-sdk-1.0.3.0/Vulkan-LoaderAndValidationLayers/loader/wsi.c 2016-03-02 21:25:25.334464012 +0100
+@@ -623,7 +623,7 @@
+ */
+ LOADER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL
+ vkCreateWaylandSurfaceKHR(VkInstance instance,
+- const VkMirSurfaceCreateInfoKHR *pCreateInfo,
++ const VkWaylandSurfaceCreateInfoKHR *pCreateInfo,
+ const VkAllocationCallbacks *pAllocator,
+ VkSurfaceKHR *pSurface) {
+ const VkLayerInstanceDispatchTable *disp;
+@@ -641,7 +641,7 @@
+ */
+ VKAPI_ATTR VkResult VKAPI_CALL
+ loader_CreateWaylandSurfaceKHR(VkInstance instance,
+- const VkMirSurfaceCreateInfoKHR *pCreateInfo,
++ const VkWaylandSurfaceCreateInfoKHR *pCreateInfo,
+ const VkAllocationCallbacks *pAllocator,
+ VkSurfaceKHR *pSurface) {
+ struct loader_instance *ptr_instance = loader_get_instance(instance);
+@@ -1021,6 +1021,7 @@
+ ? (void *)vkGetPhysicalDeviceMirPresentationSupportKHR
+ : NULL;
+ return true;
++ }
+ #endif // VK_USE_PLATFORM_MIR_KHR
+ #ifdef VK_USE_PLATFORM_WAYLAND_KHR
+ /*
+@@ -1038,6 +1039,7 @@
+ ? (void *)vkGetPhysicalDeviceWaylandPresentationSupportKHR
+ : NULL;
+ return true;
++ }
+ #endif // VK_USE_PLATFORM_WAYLAND_KHR
+ #ifdef VK_USE_PLATFORM_XCB_KHR
+ /*
+
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/vulkan-sdk.git/commitdiff/3421dbd19cc7acb1338ea34a1b9929717089cb80
More information about the pld-cvs-commit
mailing list