aboutsummaryrefslogtreecommitdiffstats
path: root/libavutil/hwcontext_vulkan.h
diff options
context:
space:
mode:
authorLynne <dev@lynne.ee>2021-11-04 12:17:06 +0100
committerLynne <dev@lynne.ee>2021-11-12 03:36:40 +0100
commit00ef53c3eabb0e99fd9b62dfd30992824de27e23 (patch)
tree05fb2b5fc5de4f131add5622c8853b6cd7f8e75e /libavutil/hwcontext_vulkan.h
parent7f3878828d88c6a8287d54818659e6f70293dabb (diff)
downloadffmpeg-00ef53c3eabb0e99fd9b62dfd30992824de27e23.tar.gz
hwcontext_vulkan: switch to using timeline semaphores
Diffstat (limited to 'libavutil/hwcontext_vulkan.h')
-rw-r--r--libavutil/hwcontext_vulkan.h13
1 files changed, 11 insertions, 2 deletions
diff --git a/libavutil/hwcontext_vulkan.h b/libavutil/hwcontext_vulkan.h
index 8d1ae50e65..9ac01e3b46 100644
--- a/libavutil/hwcontext_vulkan.h
+++ b/libavutil/hwcontext_vulkan.h
@@ -195,14 +195,23 @@ typedef struct AVVkFrame {
VkImageLayout layout[AV_NUM_DATA_POINTERS];
/**
- * Synchronization semaphores. Must not be freed manually. Must be waited on
- * and signalled at every queue submission.
+ * Synchronization timeline semaphores. Must not be freed manually.
+ * Must be waited on at every submission using the value in sem_value,
+ * and must be signalled at every submission, using an incremented value.
+ *
* Could be less than the amount of images: either one per VkDeviceMemory
* or one for the entire frame. All others will be set to VK_NULL_HANDLE.
*/
VkSemaphore sem[AV_NUM_DATA_POINTERS];
/**
+ * Up to date semaphore value at which each image becomes accessible.
+ * Clients must wait on this value when submitting a command queue,
+ * and increment it when signalling.
+ */
+ uint64_t sem_value[AV_NUM_DATA_POINTERS];
+
+ /**
* Internal data.
*/
struct AVVkFrameInternal *internal;