[Mesa-dev] [PATCH v2 17/32] radv/wsi: Move the guts of QueuePresent to wsi common

Chad Versace chadversary at chromium.org
Sat Dec 2 01:51:50 UTC 2017


On Tue 28 Nov 2017, Jason Ekstrand wrote:
> From: Dave Airlie <airlied at redhat.com>
> 
> v2 (Jason Ekstrand):
>  - Better comit message
>  - Rebase
>  - Re-indent to follow wsi_common style
>  - Drop the unneeded _swapchain from the newly added helper
>  - Make the clone more true to the original (as per the rebase)
> ---
>  src/amd/vulkan/radv_wsi.c   | 92 +++------------------------------------------
>  src/vulkan/wsi/wsi_common.c | 78 ++++++++++++++++++++++++++++++++++++++
>  src/vulkan/wsi/wsi_common.h | 10 +++++
>  3 files changed, 93 insertions(+), 87 deletions(-)

> +VkResult
> +wsi_common_queue_present(const struct wsi_device *wsi,
> +                         VkDevice device,
> +                         VkQueue queue,
> +                         int queue_family_index,
> +                         const VkPresentInfoKHR *pPresentInfo)
> +{
> +   VkResult result = VK_SUCCESS;
> +
> +   const VkPresentRegionsKHR *regions =
> +      vk_find_struct_const(pPresentInfo->pNext, PRESENT_REGIONS_KHR);
> +
> +   for (uint32_t i = 0; i < pPresentInfo->swapchainCount; i++) {
> +      WSI_FROM_HANDLE(wsi_swapchain, swapchain, pPresentInfo->pSwapchains[i]);
> +      VkResult item_result;
> +
> +      if (swapchain->fences[0] == VK_NULL_HANDLE) {
> +         const VkFenceCreateInfo fence_info = {
> +            .sType = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO,
> +            .pNext = NULL,
> +            .flags = 0,
> +         };
> +         item_result = wsi->CreateFence(device, &fence_info,
> +                                        &swapchain->alloc,
> +                                        &swapchain->fences[0]);

As part of moving fence creation to the common code, the fence
destruction should also be moved from (anv|radv)_DestroySwapchainKHR to
wsi_swapchain_finish(). But, since that migration doesn't affect the
correctness of the patch, this patch is

Reviewed-by: Chad Versace <chadversary at chromium.org>


More information about the mesa-dev mailing list