mirror of https://git.ffmpeg.org/ffmpeg.git
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.
This commit is contained in:
parent
975cd48bb3
commit
5f1be341c2
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue