[FFmpeg-devel] [PATCH 2/2] vulkan: discard dependencies when explicitly waiting for execution

Philip Langdale philipl at overt.org
Thu Jun 8 00:32:49 EEST 2023


On Wed, 7 Jun 2023 01:23:24 +0200 (CEST)
Lynne <dev at lynne.ee> wrote:

> From eb74297de8662c9fa66cd719c6315567966afe56 Mon Sep 17 00:00:00 2001
> From: Lynne <dev at lynne.ee>
> Date: Wed, 7 Jun 2023 01:16:29 +0200
> Subject: [PATCH 2/2] vulkan: discard dependencies when explicitly
> waiting for execution
> 
> This reduces memory needed dramatically, as unneeded resources
> can be immediately returned to the pool.
> Although waitforfences is threadsafe, we add a mutex wait around
> it, as the mutex fence in combination with waitforfences assures
> us that no other thread will reset the fence in the meanwhile
> whilst the mutex is locked. This allows is to call
> ff_vk_exec_discard_deps.
> ---
>  libavutil/vulkan.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/libavutil/vulkan.c b/libavutil/vulkan.c
> index 4b96c0c200..0cfe334db0 100644
> --- a/libavutil/vulkan.c
> +++ b/libavutil/vulkan.c
> @@ -480,7 +480,10 @@ FFVkExecContext *ff_vk_exec_get(FFVkExecPool
> *pool) void ff_vk_exec_wait(FFVulkanContext *s, FFVkExecContext *e)
>  {
>      FFVulkanFunctions *vk = &s->vkfn;
> +    pthread_mutex_lock(&e->lock);
>      vk->WaitForFences(s->hwctx->act_dev, 1, &e->fence, VK_TRUE,
> UINT64_MAX);
> +    ff_vk_exec_discard_deps(s, e);
> +    pthread_mutex_unlock(&e->lock);
>  }
>  
>  int ff_vk_exec_start(FFVulkanContext *s, FFVkExecContext *e)

LGTM.


--phil


More information about the ffmpeg-devel mailing list