[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