From 3fd306b4232656914267bca824b7dde4be0e2ffb Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Fri, 23 Dec 2016 06:24:21 +0000 Subject: [PATCH] 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 --- src/amd/vulkan/radv_wsi.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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]); -- 2.30.2