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".

Reply via email to