diff options
author | Lynne <dev@lynne.ee> | 2021-11-04 12:17:06 +0100 |
---|---|---|
committer | Lynne <dev@lynne.ee> | 2021-11-12 03:36:40 +0100 |
commit | 00ef53c3eabb0e99fd9b62dfd30992824de27e23 (patch) | |
tree | 05fb2b5fc5de4f131add5622c8853b6cd7f8e75e /libavutil/hwcontext_vulkan.h | |
parent | 7f3878828d88c6a8287d54818659e6f70293dabb (diff) | |
download | ffmpeg-00ef53c3eabb0e99fd9b62dfd30992824de27e23.tar.gz |
hwcontext_vulkan: switch to using timeline semaphores
Diffstat (limited to 'libavutil/hwcontext_vulkan.h')
-rw-r--r-- | libavutil/hwcontext_vulkan.h | 13 |
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; |