Mesa (master): radv: handle queue present directly to winsys

Dave Airlie airlied at kemper.freedesktop.org
Mon Dec 26 22:21:22 UTC 2016


Module: Mesa
Branch: master
Commit: 3fd306b4232656914267bca824b7dde4be0e2ffb
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3fd306b4232656914267bca824b7dde4be0e2ffb

Author: Dave Airlie <airlied at redhat.com>
Date:   Fri Dec 23 06:24:21 2016 +0000

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 <bas at basnieuwenhuizen.nl>
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]);




More information about the mesa-commit mailing list