From: Dave Airlie Date: Fri, 23 Dec 2016 06:24:21 +0000 (+0000) Subject: radv: handle queue present directly to winsys X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3fd306b4232656914267bca824b7dde4be0e2ffb;p=mesa.git radv: handle queue present directly to winsys Don't call the QueueSubmit interface, just call direct to the winsys, so we can pass the wait semaphores. Noticed while debugging doom, doesn't fix anything. Reviewed-by: Bas Nieuwenhuizen Signed-off-by: Dave Airlie --- diff --git a/src/amd/vulkan/radv_wsi.c b/src/amd/vulkan/radv_wsi.c index 1f1ab1c800b..2eb8e458c78 100644 --- a/src/amd/vulkan/radv_wsi.c +++ b/src/amd/vulkan/radv_wsi.c @@ -362,7 +362,15 @@ VkResult radv_QueuePresentKHR( 1, &swapchain->fences[0]); } - radv_QueueSubmit(_queue, 0, NULL, swapchain->fences[0]); + RADV_FROM_HANDLE(radv_fence, fence, swapchain->fences[0]); + struct radeon_winsys_fence *base_fence = fence->fence; + struct radeon_winsys_ctx *ctx = queue->device->hw_ctx; + queue->device->ws->cs_submit(ctx, queue->queue_idx, + &queue->device->empty_cs[queue->queue_family_index], + 1, + (struct radeon_winsys_sem **)pPresentInfo->pWaitSemaphores, + pPresentInfo->waitSemaphoreCount, NULL, 0, false, base_fence); + fence->submitted = true; result = swapchain->queue_present(swapchain, pPresentInfo->pImageIndices[i]);