aboutsummaryrefslogtreecommitdiffstats
path: root/src/amd/vulkan/radv_private.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/amd/vulkan/radv_private.h')
-rw-r--r--src/amd/vulkan/radv_private.h16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/amd/vulkan/radv_private.h b/src/amd/vulkan/radv_private.h
index 6eb4e5fbe3f..99ba500b254 100644
--- a/src/amd/vulkan/radv_private.h
+++ b/src/amd/vulkan/radv_private.h
@@ -722,6 +722,9 @@ struct radv_queue {
struct radeon_cmdbuf *initial_preamble_cs;
struct radeon_cmdbuf *initial_full_flush_preamble_cs;
struct radeon_cmdbuf *continue_preamble_cs;
+
+ struct list_head pending_submissions;
+ pthread_mutex_t pending_mutex;
};
struct radv_bo_list {
@@ -2167,7 +2170,6 @@ struct radv_query_pool {
uint32_t pipeline_stats_mask;
};
-
typedef enum {
RADV_SEMAPHORE_NONE,
RADV_SEMAPHORE_WINSYS,
@@ -2175,6 +2177,14 @@ typedef enum {
RADV_SEMAPHORE_TIMELINE,
} radv_semaphore_kind;
+struct radv_deferred_queue_submission;
+
+struct radv_timeline_waiter {
+ struct list_head list;
+ struct radv_deferred_queue_submission *submission;
+ uint64_t value;
+};
+
struct radv_timeline_point {
struct list_head list;
@@ -2198,6 +2208,10 @@ struct radv_timeline {
/* Keep free points on hand so we do not have to recreate syncobjs all
* the time. */
struct list_head free_points;
+
+ /* Submissions that are deferred waiting for a specific value to be
+ * submitted. */
+ struct list_head waiters;
};
struct radv_semaphore_part {