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@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10719>
This commit is contained in:
Mike Blumenkrantz
2021-05-09 10:25:00 -04:00
committed by Marge Bot
parent 4da88060d0
commit 776ddfc858
+6 -3
View File
@@ -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);