1
0
mirror of https://git.ffmpeg.org/ffmpeg.git synced 2026-10-24 02:09:03 +03:00

avutil/vulkan: add ff_vk_exec_add_dep_signal_sem

Add a helper to register a timeline-semaphore signal with an explicit value on
an execution context, mirroring ff_vk_exec_add_dep_wait_sem() on the wait side.

The fruc_vulkan filter will use this to chain timeline semaphores across its
pipelined cross-queue submissions, where an interpolation must signal a
specific (generation-keyed) value rather than the implicit binary signal.
This commit is contained in:
Philip Langdale
2026-06-28 13:03:15 -07:00
parent 283565c4c9
commit c22044c250
2 changed files with 17 additions and 0 deletions

View File

@@ -836,6 +836,20 @@ void ff_vk_exec_add_dep_wait_sem(FFVulkanContext *s, FFVkExecContext *e,
};
}
void ff_vk_exec_add_dep_signal_sem(FFVulkanContext *s, FFVkExecContext *e,
VkSemaphore sem, uint64_t val,
VkPipelineStageFlagBits2 stage)
{
av_assert1(e->sem_sig_cnt < FF_VK_EXEC_MAX_SEM_OPS);
e->sem_sig[e->sem_sig_cnt++] = (VkSemaphoreSubmitInfo) {
.sType = VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO,
.semaphore = sem,
.value = val,
.stageMask = stage,
};
}
void ff_vk_exec_add_dep_bool_sem(FFVulkanContext *s, FFVkExecContext *e,
VkSemaphore *sem, int nb,
VkPipelineStageFlagBits2 stage,

View File

@@ -525,6 +525,9 @@ void ff_vk_exec_add_dep_obj(FFVulkanContext *s, FFVkExecContext *e,
void ff_vk_exec_add_dep_wait_sem(FFVulkanContext *s, FFVkExecContext *e,
VkSemaphore sem, uint64_t val,
VkPipelineStageFlagBits2 stage);
void ff_vk_exec_add_dep_signal_sem(FFVulkanContext *s, FFVkExecContext *e,
VkSemaphore sem, uint64_t val,
VkPipelineStageFlagBits2 stage);
void ff_vk_exec_add_dep_bool_sem(FFVulkanContext *s, FFVkExecContext *e,
VkSemaphore *sem, int nb,
VkPipelineStageFlagBits2 stage,