From: Marek Olšák <marek.ol...@amd.com> --- src/gallium/auxiliary/util/u_queue.c | 10 ++++++++++ src/gallium/auxiliary/util/u_queue.h | 2 ++ 2 files changed, 12 insertions(+)
diff --git a/src/gallium/auxiliary/util/u_queue.c b/src/gallium/auxiliary/util/u_queue.c index 838464f..4da5d8e 100644 --- a/src/gallium/auxiliary/util/u_queue.c +++ b/src/gallium/auxiliary/util/u_queue.c @@ -235,10 +235,20 @@ util_queue_add_job(struct util_queue *queue, ptr->job = job; ptr->fence = fence; ptr->execute = execute; ptr->cleanup = cleanup; queue->write_idx = (queue->write_idx + 1) % queue->max_jobs; queue->num_queued++; pipe_condvar_signal(queue->has_queued_cond); pipe_mutex_unlock(queue->lock); } + +int64_t +util_queue_get_thread_time_nano(struct util_queue *queue, unsigned thread_index) +{ + /* Allow some flexibility by not raising an error. */ + if (thread_index >= queue->num_threads) + return 0; + + return pipe_thread_get_time_nano(queue->threads[thread_index]); +} diff --git a/src/gallium/auxiliary/util/u_queue.h b/src/gallium/auxiliary/util/u_queue.h index 59646cc..351315c 100644 --- a/src/gallium/auxiliary/util/u_queue.h +++ b/src/gallium/auxiliary/util/u_queue.h @@ -77,20 +77,22 @@ void util_queue_fence_init(struct util_queue_fence *fence); void util_queue_fence_destroy(struct util_queue_fence *fence); /* optional cleanup callback is called after fence is signaled: */ void util_queue_add_job(struct util_queue *queue, void *job, struct util_queue_fence *fence, util_queue_execute_func execute, util_queue_execute_func cleanup); void util_queue_job_wait(struct util_queue_fence *fence); +int64_t util_queue_get_thread_time_nano(struct util_queue *queue, + unsigned thread_index); /* util_queue needs to be cleared to zeroes for this to work */ static inline bool util_queue_is_initialized(struct util_queue *queue) { return queue->threads != NULL; } static inline bool util_queue_fence_is_signalled(struct util_queue_fence *fence) -- 2.7.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev