This is an automated email from the git hooks/post-receive script.

Git pushed a commit to branch master
in repository ffmpeg.

commit e4373dd09225d281a2d5896cc9024a72ba03381a
Author:     Lynne <[email protected]>
AuthorDate: Tue Sep 22 01:17:40 2026 +0900
Commit:     Lynne <[email protected]>
CommitDate: Thu Sep 24 11:05:27 2026 +0900

    vulkan: enable VK_KHR_maintenance11
    
    Among other things, lifts the 4-byte alignment that transfer-only queue
    families require of buffer offsets in buffer-image copies.
---
 libavutil/hwcontext_vulkan.c | 13 +++++++++++++
 libavutil/vulkan.c           |  4 ++++
 libavutil/vulkan.h           |  3 +++
 libavutil/vulkan_functions.h |  1 +
 libavutil/vulkan_loader.h    |  3 +++
 5 files changed, 24 insertions(+)

diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c
index 736b44a05a..02f7ff6ce4 100644
--- a/libavutil/hwcontext_vulkan.c
+++ b/libavutil/hwcontext_vulkan.c
@@ -107,6 +107,9 @@ typedef struct VulkanDeviceFeatures {
 #ifdef VK_KHR_maintenance9
     VkPhysicalDeviceMaintenance9FeaturesKHR maintenance_9;
 #endif
+#ifdef VK_KHR_maintenance11
+    VkPhysicalDeviceMaintenance11FeaturesKHR maintenance_11;
+#endif
 #ifdef VK_KHR_unified_image_layouts
     VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR unified_layouts;
 #endif
@@ -287,6 +290,10 @@ static void device_features_init(AVHWDeviceContext *ctx, 
VulkanDeviceFeatures *f
     FF_VK_STRUCT_EXT(s, &feats->device, &feats->maintenance_9, 
FF_VK_EXT_MAINTENANCE_9,
                      
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_9_FEATURES_KHR);
 #endif
+#ifdef VK_KHR_maintenance11
+    FF_VK_STRUCT_EXT(s, &feats->device, &feats->maintenance_11, 
FF_VK_EXT_MAINTENANCE_11,
+                     
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_11_FEATURES_KHR);
+#endif
 #ifdef VK_KHR_unified_image_layouts
     FF_VK_STRUCT_EXT(s, &feats->device, &feats->unified_layouts, 
FF_VK_EXT_UNIFIED_IMAGE_LAYOUTS,
                      
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFIED_IMAGE_LAYOUTS_FEATURES_KHR);
@@ -440,6 +447,9 @@ static void 
device_features_copy_needed(VulkanDeviceFeatures *dst, VulkanDeviceF
 #ifdef VK_KHR_maintenance9
     COPY_VAL(maintenance_9.maintenance9);
 #endif
+#ifdef VK_KHR_maintenance11
+    COPY_VAL(maintenance_11.maintenance11);
+#endif
 #ifdef VK_KHR_unified_image_layouts
     COPY_VAL(unified_layouts.unifiedImageLayouts);
     COPY_VAL(unified_layouts.unifiedImageLayoutsVideo);
@@ -773,6 +783,9 @@ static const VulkanOptExtension optional_device_exts[] = {
 #ifdef VK_KHR_maintenance9
     { VK_KHR_MAINTENANCE_9_EXTENSION_NAME,                    
FF_VK_EXT_MAINTENANCE_9          },
 #endif
+#ifdef VK_KHR_maintenance11
+    { VK_KHR_MAINTENANCE_11_EXTENSION_NAME,                   
FF_VK_EXT_MAINTENANCE_11         },
+#endif
 #ifdef VK_KHR_unified_image_layouts
     { VK_KHR_UNIFIED_IMAGE_LAYOUTS_EXTENSION_NAME,            
FF_VK_EXT_UNIFIED_IMAGE_LAYOUTS  },
 #endif
diff --git a/libavutil/vulkan.c b/libavutil/vulkan.c
index e9e914dab8..de7f836341 100644
--- a/libavutil/vulkan.c
+++ b/libavutil/vulkan.c
@@ -191,6 +191,10 @@ int ff_vk_load_props(FFVulkanContext *s)
     FF_VK_STRUCT_EXT(s, &s->feats, &s->unified_layout_feats, 
FF_VK_EXT_UNIFIED_IMAGE_LAYOUTS,
                      
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFIED_IMAGE_LAYOUTS_FEATURES_KHR);
 #endif
+#ifdef VK_KHR_maintenance11
+    FF_VK_STRUCT_EXT(s, &s->feats, &s->maintenance_11_feats, 
FF_VK_EXT_MAINTENANCE_11,
+                     
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_11_FEATURES_KHR);
+#endif
 
     if (!s->imageviews_pool) {
         s->imageviews_pool = 
av_refstruct_pool_alloc_ext(sizeof(FFVkImageViews), 0,
diff --git a/libavutil/vulkan.h b/libavutil/vulkan.h
index e92b8dffb9..7d2e89c09d 100644
--- a/libavutil/vulkan.h
+++ b/libavutil/vulkan.h
@@ -329,6 +329,9 @@ typedef struct FFVulkanContext {
     VkPhysicalDeviceVulkan12Features feats_12;
 #ifdef VK_KHR_unified_image_layouts
     VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR unified_layout_feats;
+#endif
+#ifdef VK_KHR_maintenance11
+    VkPhysicalDeviceMaintenance11FeaturesKHR maintenance_11_feats;
 #endif
     VkPhysicalDeviceFeatures2 feats;
 
diff --git a/libavutil/vulkan_functions.h b/libavutil/vulkan_functions.h
index c7d91b445a..90512691f9 100644
--- a/libavutil/vulkan_functions.h
+++ b/libavutil/vulkan_functions.h
@@ -57,6 +57,7 @@ typedef uint64_t FFVulkanExtensions;
 #define FF_VK_EXT_MAXIMAL_RECONVERGENCE  (1ULL << 24) /* 
VK_KHR_shader_maximal_reconvergence */
 #define FF_VK_EXT_MAINTENANCE_9          (1ULL << 25) /* VK_KHR_maintenance9 */
 #define FF_VK_EXT_UNIFIED_IMAGE_LAYOUTS  (1ULL << 26) /* 
VK_KHR_unified_image_layouts */
+#define FF_VK_EXT_MAINTENANCE_11         (1ULL << 27) /* VK_KHR_maintenance11 
*/
 
 /* 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 f1dbd7fee1..d4be1ffb9b 100644
--- a/libavutil/vulkan_loader.h
+++ b/libavutil/vulkan_loader.h
@@ -107,6 +107,9 @@ static inline uint64_t ff_vk_extensions_to_mask(const char 
* const *extensions,
 #endif
 #ifdef VK_KHR_internally_synchronized_queues
         { VK_KHR_INTERNALLY_SYNCHRONIZED_QUEUES_EXTENSION_NAME, 
FF_VK_EXT_INTERNAL_QUEUE_SYNC   },
+#endif
+#ifdef VK_KHR_maintenance11
+        { VK_KHR_MAINTENANCE_11_EXTENSION_NAME,            
FF_VK_EXT_MAINTENANCE_11         },
 #endif
     };
 

-- 
To stop receiving notification emails like this one, please contact
[email protected].
_______________________________________________
ffmpeg-cvslog mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to