summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary/util
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2017-02-11 20:51:41 +0100
committerMarek Olšák <[email protected]>2017-02-14 21:47:51 +0100
commit626e4ef18f1ffc521ab3e6faef3173abedd52dbf (patch)
tree1e337ce4a96f6c073864d7c7e85249c2808b8830 /src/gallium/auxiliary/util
parent6c61a8bfc6cb30e30b806a30f30c0e9b01b0d673 (diff)
gallium/u_queue: add util_queue_get_thread_time_nano
Reviewed-by: Nicolai Hähnle <[email protected]>
Diffstat (limited to 'src/gallium/auxiliary/util')
-rw-r--r--src/gallium/auxiliary/util/u_queue.c10
-rw-r--r--src/gallium/auxiliary/util/u_queue.h2
2 files changed, 12 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/util/u_queue.c b/src/gallium/auxiliary/util/u_queue.c
index 838464fb9a6..4da5d8e9f8c 100644
--- a/src/gallium/auxiliary/util/u_queue.c
+++ b/src/gallium/auxiliary/util/u_queue.c
@@ -242,3 +242,13 @@ util_queue_add_job(struct util_queue *queue,
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 59646cc298b..351315c5780 100644
--- a/src/gallium/auxiliary/util/u_queue.h
+++ b/src/gallium/auxiliary/util/u_queue.h
@@ -84,6 +84,8 @@ void util_queue_add_job(struct util_queue *queue,
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