Mesa (master): radv: add a small helper that allows to submit internal CS

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Feb 28 07:38:19 UTC 2020


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

Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date:   Fri Feb 21 09:35:46 2020 +0100

radv: add a small helper that allows to submit internal CS

Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3900>

---

 src/amd/vulkan/radv_device.c  | 19 +++++++++++++++++++
 src/amd/vulkan/radv_private.h |  3 +++
 2 files changed, 22 insertions(+)

diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c
index d86f2c7d690..04fdb462a92 100644
--- a/src/amd/vulkan/radv_device.c
+++ b/src/amd/vulkan/radv_device.c
@@ -4652,6 +4652,25 @@ static VkResult radv_queue_submit(struct radv_queue *queue,
 	return radv_process_submissions(&processing_list);
 }
 
+bool
+radv_queue_internal_submit(struct radv_queue *queue, struct radeon_cmdbuf *cs)
+{
+	struct radeon_winsys_ctx *ctx = queue->hw_ctx;
+	struct radv_winsys_sem_info sem_info;
+	VkResult result;
+	int ret;
+
+	result = radv_alloc_sem_info(queue->device, &sem_info, 0, NULL, 0, 0,
+				     0, NULL, NULL);
+	if (result != VK_SUCCESS)
+		return false;
+
+	ret = queue->device->ws->cs_submit(ctx, queue->queue_idx, &cs, 1, NULL,
+					   NULL, &sem_info, NULL, false, NULL);
+	radv_free_sem_info(&sem_info);
+	return !ret;
+}
+
 /* Signals fence as soon as all the work currently put on queue is done. */
 static VkResult radv_signal_fence(struct radv_queue *queue,
                               VkFence fence)
diff --git a/src/amd/vulkan/radv_private.h b/src/amd/vulkan/radv_private.h
index 7f4b571beb2..8d461178770 100644
--- a/src/amd/vulkan/radv_private.h
+++ b/src/amd/vulkan/radv_private.h
@@ -2287,6 +2287,9 @@ struct radv_semaphore {
 	struct radv_semaphore_part temporary;
 };
 
+bool radv_queue_internal_submit(struct radv_queue *queue,
+				struct radeon_cmdbuf *cs);
+
 void radv_set_descriptor_set(struct radv_cmd_buffer *cmd_buffer,
 			     VkPipelineBindPoint bind_point,
 			     struct radv_descriptor_set *set,



More information about the mesa-commit mailing list