Mesa (main): util/queue: don't require a fence when adding a job

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri May 14 07:10:34 UTC 2021


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

Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date:   Sun May  9 10:25:00 2021 -0400

util/queue: don't require a fence when adding a job

sometimes we just want to fire jobs off into the void and don't care
if or when they finish

Reviewed-by: Rob Clark <robdclark at chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10719>

---

 src/util/u_queue.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/util/u_queue.c b/src/util/u_queue.c
index 19aa829c522..929802679bc 100644
--- a/src/util/u_queue.c
+++ b/src/util/u_queue.c
@@ -311,7 +311,8 @@ util_queue_thread_func(void *input)
 
       if (job.job) {
          job.execute(job.job, thread_index);
-         util_queue_fence_signal(job.fence);
+         if (job.fence)
+            util_queue_fence_signal(job.fence);
          if (job.cleanup)
             job.cleanup(job.job, thread_index);
       }
@@ -323,7 +324,8 @@ util_queue_thread_func(void *input)
       for (unsigned i = queue->read_idx; i != queue->write_idx;
            i = (i + 1) % queue->max_jobs) {
          if (queue->jobs[i].job) {
-            util_queue_fence_signal(queue->jobs[i].fence);
+            if (queue->jobs[i].fence)
+               util_queue_fence_signal(queue->jobs[i].fence);
             queue->jobs[i].job = NULL;
          }
       }
@@ -552,7 +554,8 @@ util_queue_add_job(struct util_queue *queue,
       return;
    }
 
-   util_queue_fence_reset(fence);
+   if (fence)
+      util_queue_fence_reset(fence);
 
    assert(queue->num_queued >= 0 && queue->num_queued <= queue->max_jobs);
 



More information about the mesa-commit mailing list