[Mesa-dev] [PATCH] vulkan: simplify VK_USE_PLATFORM_*_KHR handling
Emil Velikov
emil.l.velikov at gmail.com
Fri Mar 9 15:24:18 UTC 2018
From: Emil Velikov <emil.velikov at collabora.com>
Instead of having multiple guards littered through the code, simply
introduce static inline no-op functions when the respective macros are
not set.
Inspired by the same convention from the kernel.
Cc: Eric Engestrom <eric.engestrom at imgtec.com>
Signed-off-by: Emil Velikov <emil.velikov at collabora.com>
---
Here is an example of my earlier suggestion.
NOTE: not even compile tested!
---
src/vulkan/wsi/wsi_common.c | 8 --------
src/vulkan/wsi/wsi_common_private.h | 27 +++++++++++++++++++++++++++
2 files changed, 27 insertions(+), 8 deletions(-)
diff --git a/src/vulkan/wsi/wsi_common.c b/src/vulkan/wsi/wsi_common.c
index fe262b4968d..c91075325b9 100644
--- a/src/vulkan/wsi/wsi_common.c
+++ b/src/vulkan/wsi/wsi_common.c
@@ -79,17 +79,13 @@ wsi_device_init(struct wsi_device *wsi,
WSI_GET_CB(WaitForFences);
#undef WSI_GET_CB
-#ifdef VK_USE_PLATFORM_XCB_KHR
result = wsi_x11_init_wsi(wsi, alloc);
if (result != VK_SUCCESS)
goto fail;
-#endif
-#ifdef VK_USE_PLATFORM_WAYLAND_KHR
result = wsi_wl_init_wsi(wsi, alloc, pdevice);
if (result != VK_SUCCESS)
goto fail;
-#endif
return VK_SUCCESS;
@@ -102,12 +98,8 @@ void
wsi_device_finish(struct wsi_device *wsi,
const VkAllocationCallbacks *alloc)
{
-#ifdef VK_USE_PLATFORM_WAYLAND_KHR
wsi_wl_finish_wsi(wsi, alloc);
-#endif
-#ifdef VK_USE_PLATFORM_XCB_KHR
wsi_x11_finish_wsi(wsi, alloc);
-#endif
}
VkResult
diff --git a/src/vulkan/wsi/wsi_common_private.h b/src/vulkan/wsi/wsi_common_private.h
index b608119b969..501bbf0498e 100644
--- a/src/vulkan/wsi/wsi_common_private.h
+++ b/src/vulkan/wsi/wsi_common_private.h
@@ -129,16 +129,43 @@ struct wsi_interface {
struct wsi_swapchain **swapchain);
};
+#ifdef VK_USE_PLATFORM_XCB_KHR
VkResult wsi_x11_init_wsi(struct wsi_device *wsi_device,
const VkAllocationCallbacks *alloc);
void wsi_x11_finish_wsi(struct wsi_device *wsi_device,
const VkAllocationCallbacks *alloc);
+#else
+static inline
+VkResult wsi_x11_init_wsi(struct wsi_device *wsi_device,
+ const VkAllocationCallbacks *alloc)
+{
+ return VK_SUCCESS;
+}
+
+static inline
+void wsi_x11_finish_wsi(struct wsi_device *wsi_device,
+ const VkAllocationCallbacks *alloc) { }
+#endif
+
+#ifdef VK_USE_PLATFORM_WAYLAND_KHR
VkResult wsi_wl_init_wsi(struct wsi_device *wsi_device,
const VkAllocationCallbacks *alloc,
VkPhysicalDevice physical_device);
void wsi_wl_finish_wsi(struct wsi_device *wsi_device,
const VkAllocationCallbacks *alloc);
+#else
+static inline
+VkResult wsi_wl_init_wsi(struct wsi_device *wsi_device,
+ const VkAllocationCallbacks *alloc,
+ VkPhysicalDevice physical_device);
+{
+ return VK_SUCCESS;
+}
+static inline
+void wsi_wl_finish_wsi(struct wsi_device *wsi_device,
+ const VkAllocationCallbacks *alloc) {}
+#endif
#define WSI_DEFINE_NONDISP_HANDLE_CASTS(__wsi_type, __VkType) \
\
--
2.16.0
More information about the mesa-dev
mailing list