From fb216b5facde2c97cb0ce2e75fb3228aa5ac21fa Mon Sep 17 00:00:00 2001 From: nyanmisaka Date: Fri, 8 May 2026 02:53:15 +0800 Subject: [PATCH] vulkan: fix using encode caps before querying Fix using enc_caps.supportedEncodeFeedbackFlags before calling vkGetPhysicalDeviceVideoCapabilitiesKHR(). Otherwise the check will never pass and will fail with ENOTSUP. Fixes 3f9e04b Signed-off-by: nyanmisaka (cherry picked from commit d01d18ad71d480566416142887012e3fc334ca8b) --- libavcodec/vulkan_encode.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/libavcodec/vulkan_encode.c b/libavcodec/vulkan_encode.c index b6f0b26f6b..39c43300c4 100644 --- a/libavcodec/vulkan_encode.c +++ b/libavcodec/vulkan_encode.c @@ -772,14 +772,6 @@ av_cold int ff_vulkan_encode_init(AVCodecContext *avctx, FFVulkanEncodeContext * return AVERROR(EINVAL); } - if ((ctx->enc_caps.supportedEncodeFeedbackFlags & feedback_flags) != - feedback_flags) { - av_log (avctx, AV_LOG_ERROR, - "Driver does not support required encode feedback flags " - "(BUFFER_OFFSET and BYTES_WRITTEN).\n"); - return AVERROR(ENOTSUP); - } - ctx->base.op = &vulkan_base_encode_ops; ctx->codec = codec; @@ -881,6 +873,14 @@ av_cold int ff_vulkan_encode_init(AVCodecContext *avctx, FFVulkanEncodeContext * return AVERROR_EXTERNAL; } + if ((ctx->enc_caps.supportedEncodeFeedbackFlags & feedback_flags) != + feedback_flags) { + av_log(avctx, AV_LOG_ERROR, + "Driver does not support required encode feedback flags " + "(BUFFER_OFFSET and BYTES_WRITTEN).\n"); + return AVERROR(ENOTSUP); + } + err = init_rc(avctx, ctx); if (err < 0) return err;