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:
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user