From 41f65b7326ea437d0b19744810903a5a588047fd Mon Sep 17 00:00:00 2001 From: Lynne Date: Thu, 28 Nov 2024 00:51:21 +0900 Subject: [PATCH] vulkan_decode: ensure there's at least one context per decode thread Otherwise, what may happen is that 2 threads will both write into the same context. --- libavcodec/vulkan_decode.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavcodec/vulkan_decode.c b/libavcodec/vulkan_decode.c index e55df7ad27..dc5d57ec67 100644 --- a/libavcodec/vulkan_decode.c +++ b/libavcodec/vulkan_decode.c @@ -1159,7 +1159,8 @@ int ff_vk_decode_init(AVCodecContext *avctx) /* Create decode exec context for this specific main thread. * 2 async contexts per thread was experimentally determined to be optimal * for a majority of streams. */ - err = ff_vk_exec_pool_init(s, &ctx->qf, &dec->exec_pool, 2*ctx->qf.nb_queues, + err = ff_vk_exec_pool_init(s, &ctx->qf, &dec->exec_pool, + FFMAX(2*ctx->qf.nb_queues, avctx->thread_count), nb_q, VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR, 0, profile); if (err < 0)