This is an automated email from the git hooks/post-receive script. Git pushed a commit to branch master in repository ffmpeg.
commit 64fe3bee7f169ab034f084e5b1d66859bf2ddbbf Author: Lynne <[email protected]> AuthorDate: Thu Jul 30 19:12:18 2026 +0900 Commit: Lynne <[email protected]> CommitDate: Mon Aug 3 10:57:45 2026 +0900 vulkan: enable VK_KHR_shader_maximal_reconvergence when available --- libavutil/hwcontext_vulkan.c | 16 ++++++++++++++++ libavutil/vulkan_functions.h | 1 + libavutil/vulkan_loader.h | 3 +++ 3 files changed, 20 insertions(+) diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c index 6f17f95868..f2496fc70d 100644 --- a/libavutil/hwcontext_vulkan.c +++ b/libavutil/hwcontext_vulkan.c @@ -99,6 +99,10 @@ typedef struct VulkanDeviceFeatures { VkPhysicalDeviceShaderExpectAssumeFeaturesKHR expect_assume; #endif +#ifdef VK_KHR_shader_maximal_reconvergence + VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR maximal_reconvergence; +#endif + VkPhysicalDeviceVideoMaintenance1FeaturesKHR video_maintenance_1; #ifdef VK_KHR_video_maintenance2 VkPhysicalDeviceVideoMaintenance2FeaturesKHR video_maintenance_2; @@ -265,6 +269,11 @@ static void device_features_init(AVHWDeviceContext *ctx, VulkanDeviceFeatures *f VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR); #endif +#ifdef VK_KHR_shader_maximal_reconvergence + FF_VK_STRUCT_EXT(s, &feats->device, &feats->maximal_reconvergence, FF_VK_EXT_MAXIMAL_RECONVERGENCE, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR); +#endif + FF_VK_STRUCT_EXT(s, &feats->device, &feats->video_maintenance_1, FF_VK_EXT_VIDEO_MAINTENANCE_1, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR); #ifdef VK_KHR_video_maintenance2 @@ -403,6 +412,10 @@ static void device_features_copy_needed(VulkanDeviceFeatures *dst, VulkanDeviceF COPY_VAL(expect_assume.shaderExpectAssume); #endif +#ifdef VK_KHR_shader_maximal_reconvergence + COPY_VAL(maximal_reconvergence.shaderMaximalReconvergence); +#endif + #ifdef VK_KHR_internally_synchronized_queues COPY_VAL(internal_queue_sync.internallySynchronizedQueues); #endif @@ -722,6 +735,9 @@ static const VulkanOptExtension optional_device_exts[] = { #endif #ifdef VK_KHR_shader_expect_assume { VK_KHR_SHADER_EXPECT_ASSUME_EXTENSION_NAME, FF_VK_EXT_EXPECT_ASSUME }, +#endif +#ifdef VK_KHR_shader_maximal_reconvergence + { VK_KHR_SHADER_MAXIMAL_RECONVERGENCE_EXTENSION_NAME, FF_VK_EXT_MAXIMAL_RECONVERGENCE }, #endif { VK_KHR_VIDEO_MAINTENANCE_1_EXTENSION_NAME, FF_VK_EXT_VIDEO_MAINTENANCE_1 }, #ifdef VK_KHR_video_maintenance2 diff --git a/libavutil/vulkan_functions.h b/libavutil/vulkan_functions.h index 86dff046b2..c7d5ebddfa 100644 --- a/libavutil/vulkan_functions.h +++ b/libavutil/vulkan_functions.h @@ -54,6 +54,7 @@ typedef uint64_t FFVulkanExtensions; #define FF_VK_EXT_REPLICATED_COMPOSITES (1ULL << 21) /* VK_EXT_shader_replicated_composites */ #define FF_VK_EXT_LONG_VECTOR (1ULL << 22) /* VK_EXT_shader_long_vector */ #define FF_VK_EXT_INTERNAL_QUEUE_SYNC (1ULL << 23) /* VK_KHR_internally_synchronized_queues */ +#define FF_VK_EXT_MAXIMAL_RECONVERGENCE (1ULL << 24) /* VK_KHR_shader_maximal_reconvergence */ /* Video extensions */ #define FF_VK_EXT_VIDEO_QUEUE (1ULL << 36) /* VK_KHR_video_queue */ diff --git a/libavutil/vulkan_loader.h b/libavutil/vulkan_loader.h index 7ea359b6cd..c311804f0d 100644 --- a/libavutil/vulkan_loader.h +++ b/libavutil/vulkan_loader.h @@ -93,6 +93,9 @@ static inline uint64_t ff_vk_extensions_to_mask(const char * const *extensions, #ifdef VK_KHR_shader_expect_assume { VK_KHR_SHADER_EXPECT_ASSUME_EXTENSION_NAME, FF_VK_EXT_EXPECT_ASSUME }, #endif +#ifdef VK_KHR_shader_maximal_reconvergence + { VK_KHR_SHADER_MAXIMAL_RECONVERGENCE_EXTENSION_NAME, FF_VK_EXT_MAXIMAL_RECONVERGENCE }, +#endif #ifdef VK_KHR_video_encode_av1 { VK_KHR_VIDEO_ENCODE_AV1_EXTENSION_NAME, FF_VK_EXT_VIDEO_ENCODE_AV1 }, #endif _______________________________________________ ffmpeg-cvslog mailing list -- [email protected] To unsubscribe send an email to [email protected]
