[Mesa-dev] [PATCH] radv: handle queue present directly to winsys
Dave Airlie
airlied at gmail.com
Fri Dec 23 06:26:54 UTC 2016
From: Dave Airlie <airlied at redhat.com>
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.
Signed-off-by: Dave Airlie <airlied at redhat.com>
---
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 1f1ab1c..2eb8e45 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.7.4
More information about the mesa-dev
mailing list