[Mesa-dev] [PATCH v2] vulkan: simplify VK_USE_PLATFORM_*_KHR handling
Emil Velikov
emil.l.velikov at gmail.com
Thu Aug 9 15:52:02 UTC 2018
On 9 August 2018 at 15:46, Eric Engestrom <eric.engestrom at intel.com> wrote:
> On Tuesday, 2018-08-07 18:17:09 +0100, Emil Velikov wrote:
>> 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.
>>
>> v2: Also handle PLATFORM_DISPLAY
>>
>> Signed-off-by: Emil Velikov <emil.velikov at collabora.com>
>> Reviewed-by: Eric Engestrom <eric.engestrom at imgtec.com> (v1)
>> ---
>> src/vulkan/wsi/wsi_common.c | 12 --------
>> src/vulkan/wsi/wsi_common_private.h | 47 +++++++++++++++++++++++++++++
>> 2 files changed, 47 insertions(+), 12 deletions(-)
>>
>> diff --git a/src/vulkan/wsi/wsi_common.c b/src/vulkan/wsi/wsi_common.c
>> index f2d90a6bba2..d2ba7871a1d 100644
>> --- a/src/vulkan/wsi/wsi_common.c
>> +++ b/src/vulkan/wsi/wsi_common.c
>> @@ -80,23 +80,17 @@ 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
>>
>> -#ifdef VK_USE_PLATFORM_DISPLAY_KHR
>> result = wsi_display_init_wsi(wsi, alloc, display_fd);
>> if (result != VK_SUCCESS)
>> goto fail;
>> -#endif
>>
>> return VK_SUCCESS;
>>
>> @@ -109,15 +103,9 @@ void
>> wsi_device_finish(struct wsi_device *wsi,
>> const VkAllocationCallbacks *alloc)
>> {
>> -#ifdef VK_USE_PLATFORM_DISPLAY_KHR
>> wsi_display_finish_wsi(wsi, alloc);
>> -#endif
>> -#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 9f2aacd6560..7dc1554e38d 100644
>> --- a/src/vulkan/wsi/wsi_common_private.h
>> +++ b/src/vulkan/wsi/wsi_common_private.h
>> @@ -128,17 +128,49 @@ 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
>>
>> +#ifdef VK_USE_PLATFORM_DISPLAY_KHR
>> VkResult
>> wsi_display_init_wsi(struct wsi_device *wsi_device,
>> const VkAllocationCallbacks *alloc,
>> @@ -147,6 +179,21 @@ wsi_display_init_wsi(struct wsi_device *wsi_device,
>> void
>> wsi_display_finish_wsi(struct wsi_device *wsi_device,
>> const VkAllocationCallbacks *alloc);
>> +#else
>> +static inline VkResult
>> +wsi_display_init_wsi(struct wsi_device *wsi_device,
>
> To be consistent, `VkResult` (and `void` in the finish one below) should
> be on the same line as the function name.
>
Just following existing wsi_display_init_wsi declaration.
> That said, this is actually much more code and more complicated than the
> current state, and let's be honest: nobody will add another wsi_device_init()
> or anything else that would add a second caller for any of these, so
> I actually retract my r-b: I think it's better as it currently is :)
>
Ack. It is fairly bike-sheddy solution, so I'm glad it's settled
sooner than later ;-)
Thanks
Emil
More information about the mesa-dev
mailing list