summaryrefslogtreecommitdiff
path: root/src/amd/vulkan/radv_private.h
diff options
context:
space:
mode:
authorBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>2019-10-20 22:50:58 +0200
committerBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>2019-10-30 11:57:07 +0100
commitc3eae659e7b53534389f02a9bf74cdbaff2710d8 (patch)
tree5877a5353a877aae4d69da131731590791ec0475 /src/amd/vulkan/radv_private.h
parent84d9551b232bdcead017b212cbb3e291486e698c (diff)
radv: Split semaphore into two parts as enum+union.
This is in preparation to adding more types. Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Diffstat (limited to 'src/amd/vulkan/radv_private.h')
-rw-r--r--src/amd/vulkan/radv_private.h21
1 files changed, 17 insertions, 4 deletions
diff --git a/src/amd/vulkan/radv_private.h b/src/amd/vulkan/radv_private.h
index 99cffc1f1b9..ef7ba34c85b 100644
--- a/src/amd/vulkan/radv_private.h
+++ b/src/amd/vulkan/radv_private.h
@@ -2163,11 +2163,24 @@ struct radv_query_pool {
uint32_t pipeline_stats_mask;
};
+
+typedef enum {
+ RADV_SEMAPHORE_NONE,
+ RADV_SEMAPHORE_WINSYS,
+ RADV_SEMAPHORE_SYNCOBJ,
+} radv_semaphore_kind;
+
+struct radv_semaphore_part {
+ radv_semaphore_kind kind;
+ union {
+ uint32_t syncobj;
+ struct radeon_winsys_sem *ws_sem;
+ };
+};
+
struct radv_semaphore {
- /* use a winsys sem for non-exportable */
- struct radeon_winsys_sem *sem;
- uint32_t syncobj;
- uint32_t temp_syncobj;
+ struct radv_semaphore_part permanent;
+ struct radv_semaphore_part temporary;
};
void radv_set_descriptor_set(struct radv_cmd_buffer *cmd_buffer,