This adds a function which adds a regular timeline semaphore as a wait-only dependency. --- libavutil/vulkan.c | 28 ++++++++++++++++++++-------- libavutil/vulkan.h | 3 +++ 2 files changed, 23 insertions(+), 8 deletions(-)
diff --git a/libavutil/vulkan.c b/libavutil/vulkan.c index b7cdc3a086..08d042a195 100644 --- a/libavutil/vulkan.c +++ b/libavutil/vulkan.c @@ -620,6 +620,23 @@ static void destroy_tmp_semaphores(void *opaque, uint8_t *data) av_free(ts); } +int ff_vk_exec_add_dep_wait_sem(FFVulkanContext *s, FFVkExecContext *e, + VkSemaphore sem, uint64_t val, + VkPipelineStageFlagBits2 stage) +{ + VkSemaphoreSubmitInfo *sem_wait; + ARR_REALLOC(e, sem_wait, &e->sem_wait_alloc, e->sem_wait_cnt); + + e->sem_wait[e->sem_wait_cnt++] = (VkSemaphoreSubmitInfo) { + .sType = VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO, + .semaphore = sem, + .value = val, + .stageMask = stage, + }; + + return 0; +} + int ff_vk_exec_add_dep_bool_sem(FFVulkanContext *s, FFVkExecContext *e, VkSemaphore *sem, int nb, VkPipelineStageFlagBits2 stage, @@ -672,14 +689,9 @@ int ff_vk_exec_add_dep_bool_sem(FFVulkanContext *s, FFVkExecContext *e, } for (int i = 0; i < nb; i++) { - VkSemaphoreSubmitInfo *sem_wait; - ARR_REALLOC(e, sem_wait, &e->sem_wait_alloc, e->sem_wait_cnt); - - e->sem_wait[e->sem_wait_cnt++] = (VkSemaphoreSubmitInfo) { - .sType = VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO, - .semaphore = sem[i], - .stageMask = stage, - }; + err = ff_vk_exec_add_dep_wait_sem(s, e, sem[i], 0, stage); + if (err < 0) + return err; } return 0; diff --git a/libavutil/vulkan.h b/libavutil/vulkan.h index ef2c2fe4a2..5f5f4e1fc4 100644 --- a/libavutil/vulkan.h +++ b/libavutil/vulkan.h @@ -456,6 +456,9 @@ void ff_vk_exec_wait(FFVulkanContext *s, FFVkExecContext *e); */ int ff_vk_exec_add_dep_buf(FFVulkanContext *s, FFVkExecContext *e, AVBufferRef **deps, int nb_deps, int ref); +int ff_vk_exec_add_dep_wait_sem(FFVulkanContext *s, FFVkExecContext *e, + VkSemaphore sem, uint64_t val, + VkPipelineStageFlagBits2 stage); int ff_vk_exec_add_dep_bool_sem(FFVulkanContext *s, FFVkExecContext *e, VkSemaphore *sem, int nb, VkPipelineStageFlagBits2 stage, -- 2.47.2 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".