Mesa (main): v3dv: document Vulkan requirements for signaling operations

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon May 2 06:27:20 UTC 2022


Module: Mesa
Branch: main
Commit: a44d498287a631cbf623a3c54e7f169e4daf1171
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a44d498287a631cbf623a3c54e7f169e4daf1171

Author: Iago Toral Quiroga <itoral at igalia.com>
Date:   Tue Apr 26 09:07:54 2022 +0200

v3dv: document Vulkan requirements for signaling operations

Reviewed-by: Alejandro Piñeiro <apinheiro at igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16235>

---

 src/broadcom/vulkan/v3dv_queue.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/broadcom/vulkan/v3dv_queue.c b/src/broadcom/vulkan/v3dv_queue.c
index d14d1b04c21..68d94129d14 100644
--- a/src/broadcom/vulkan/v3dv_queue.c
+++ b/src/broadcom/vulkan/v3dv_queue.c
@@ -871,6 +871,11 @@ queue_create_noop_job(struct v3dv_queue *queue)
 
    v3dv_X(device, job_emit_noop)(queue->noop_job);
 
+   /* We use no-op jobs to signal semaphores/fences. These jobs needs to be
+    * serialized across all hw queues to comply with Vulkan's signal operation
+    * order requirements, which basically require that signal operations occur
+    * in submission order.
+    */
    queue->noop_job->serialize = true;
 
    return VK_SUCCESS;
@@ -911,7 +916,8 @@ v3dv_queue_driver_submit(struct vk_queue *vk_queue,
 
    /* Finish by submitting a no-op job that synchronizes across all queues.
     * This will ensure that the signal semaphores don't get triggered until
-    * all work on any queue completes.
+    * all work on any queue completes. See Vulkan's signal operation order
+    * requirements.
     */
    if (submit->signal_count > 0) {
       if (!queue->noop_job) {



More information about the mesa-commit mailing list