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