diff options
author | Dave Airlie <[email protected]> | 2016-12-23 06:24:21 +0000 |
---|---|---|
committer | Dave Airlie <[email protected]> | 2016-12-26 22:20:35 +0000 |
commit | 3fd306b4232656914267bca824b7dde4be0e2ffb (patch) | |
tree | 1a485a532c2f2d36f9b587fb7ae561924a885400 | |
parent | 097c9dc2d4abc57bac5195fa0bed327828a4a895 (diff) |
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 <[email protected]>
Signed-off-by: Dave Airlie <[email protected]>
-rw-r--r-- | src/amd/vulkan/radv_wsi.c | 10 |
1 files changed, 9 insertions, 1 deletions
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]); |