From: Emil Velikov <emil.veli...@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.engest...@imgtec.com> Signed-off-by: Emil Velikov <emil.veli...@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 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev