[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