summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChad Versace <chadversary@chromium.org>2022-10-11 19:00:46 -0700
committerChad Versace <chadversary@chromium.org>2022-10-12 16:59:20 -0700
commit7daedd2a305469eacecea892998d5ec88d1e6496 (patch)
treeed40a74698cb1dd55e9e64ee33dfeb5a595ac7ec
parentcc1407df442627c2b99842aefc3d2456193d6f82 (diff)
venus: Add vn_queue_wait_idle_before_present()
Trivial refactor. Signed-off-by: Chad Versace <chadversary@chromium.org> Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org> Reviewed-by: Ryan Neph <ryanneph@google.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19046>
-rw-r--r--src/virtio/vulkan/vn_queue.c26
1 files changed, 16 insertions, 10 deletions
diff --git a/src/virtio/vulkan/vn_queue.c b/src/virtio/vulkan/vn_queue.c
index 1f102c78323..2844863fba7 100644
--- a/src/virtio/vulkan/vn_queue.c
+++ b/src/virtio/vulkan/vn_queue.c
@@ -441,6 +441,21 @@ vn_queue_submit(struct vn_instance *instance,
return VK_SUCCESS;
}
+static void
+vn_queue_wait_idle_before_present(struct vn_queue *queue)
+{
+ struct vn_instance *instance = queue->device->instance;
+ VkQueue queue_h = vn_queue_to_handle(queue);
+
+ if (VN_DEBUG(WSI)) {
+ static uint32_t ratelimit = 0;
+ if (ratelimit++ < 10)
+ vn_log(instance, "forcing vkQueueWaitIdle before presenting");
+ }
+
+ vn_QueueWaitIdle(queue_h);
+}
+
VkResult
vn_QueueSubmit(VkQueue queue_h,
uint32_t submitCount,
@@ -501,16 +516,7 @@ vn_QueueSubmit(VkQueue queue_h,
.bo_count = 1,
});
} else {
- if (VN_DEBUG(WSI)) {
- static uint32_t ratelimit;
- if (ratelimit < 10) {
- vn_log(dev->instance,
- "forcing vkQueueWaitIdle before presenting");
- ratelimit++;
- }
- }
-
- vn_QueueWaitIdle(submit.queue);
+ vn_queue_wait_idle_before_present(queue);
}
}