PR #23075 opened by Stephane Cerveau (dabrain34)
URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/23075
Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/23075.patch

The supportedEncodeFeedbackFlags check ran before
GetPhysicalDeviceVideoCapabilitiesKHR
populated ctx->enc_caps, so it was always testing zeroed flags. Move the
check past the capability query so it operates on real driver data.


>From df2ecf7e72132686178bdee40bd108fead6232d9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Cerveau?= <[email protected]>
Date: Mon, 11 May 2026 16:39:17 +0200
Subject: [PATCH] vulkan: check encode feedback flags after querying
 capabilities

The supportedEncodeFeedbackFlags check ran before
GetPhysicalDeviceVideoCapabilitiesKHR
populated ctx->enc_caps, so it was always testing zeroed flags. Move the
check past the capability query so it operates on real driver data.
---
 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..a62dadb35d 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