ffmpeg | branch: master | Lynne <d...@lynne.ee> | Sun Nov 7 08:44:46 2021 +0100| [bde1fc5386282142697dbaf91fe57744ba63fec1] | committer: Lynne
hwcontext_vulkan: host wait on semaphores before freeing frame > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=bde1fc5386282142697dbaf91fe57744ba63fec1 --- libavutil/hwcontext_vulkan.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c index 6aba9e3b8e..69de06e6c2 100644 --- a/libavutil/hwcontext_vulkan.c +++ b/libavutil/hwcontext_vulkan.c @@ -112,6 +112,7 @@ enum VulkanExtensions { /* Semaphores */ \ MACRO(1, 1, EXT_EXTERNAL_FD_SEM, GetSemaphoreFdKHR) \ MACRO(1, 1, EXT_NO_FLAG, CreateSemaphore) \ + MACRO(1, 1, EXT_NO_FLAG, WaitSemaphores) \ MACRO(1, 1, EXT_NO_FLAG, DestroySemaphore) \ \ /* Memory */ \ @@ -1737,6 +1738,16 @@ static void vulkan_frame_free(void *opaque, uint8_t *data) VulkanFunctions *vk = &p->vkfn; int planes = av_pix_fmt_count_planes(hwfc->sw_format); + VkSemaphoreWaitInfo wait_info = { + .sType = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO, + .flags = 0x0, + .pSemaphores = f->sem, + .pValues = f->sem_value, + .semaphoreCount = planes, + }; + + vk->WaitSemaphores(hwctx->act_dev, &wait_info, UINT64_MAX); + vulkan_free_internal(f->internal); for (int i = 0; i < planes; i++) { _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog To unsubscribe, visit link above, or email ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".