PR #23042 opened by nyanmisaka
URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/23042
Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/23042.patch

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 <[email protected]>

Is this really not an oversight during the rebase?


>From b6fa60444135293a83f5f2aea2521cf574f7ecdb Mon Sep 17 00:00:00 2001
From: nyanmisaka <[email protected]>
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 <[email protected]>
---
 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;
-- 
2.52.0

_______________________________________________
ffmpeg-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to