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

Git pushed a commit to branch master
in repository ffmpeg.

commit e32cb94258f30e13b3e52c24bc4b04dbd0fc0009
Author:     Lynne <[email protected]>
AuthorDate: Tue Jan 6 17:48:13 2026 +0100
Commit:     Lynne <[email protected]>
CommitDate: Mon Jan 12 17:28:41 2026 +0100

    hwcontext_vulkan: enable long vector extension
    
    This enables us to do some neat tricks.
---
 libavutil/hwcontext_vulkan.c | 16 ++++++++++++++++
 libavutil/vulkan.c           |  5 +++++
 libavutil/vulkan.h           |  3 +++
 libavutil/vulkan_functions.h |  1 +
 libavutil/vulkan_loader.h    |  3 +++
 5 files changed, 28 insertions(+)

diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c
index 32d29d2d88..b16b8670c1 100644
--- a/libavutil/hwcontext_vulkan.c
+++ b/libavutil/hwcontext_vulkan.c
@@ -83,6 +83,10 @@ typedef struct VulkanDeviceFeatures {
     VkPhysicalDeviceHostImageCopyFeaturesEXT host_image_copy;
     VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR 
explicit_mem_layout;
 
+#ifdef VK_EXT_shader_long_vector
+    VkPhysicalDeviceShaderLongVectorFeaturesEXT long_vector;
+#endif
+
 #ifdef VK_EXT_shader_replicated_composites
     VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT 
replicated_composites;
 #endif
@@ -231,6 +235,11 @@ static void device_features_init(AVHWDeviceContext *ctx, 
VulkanDeviceFeatures *f
     FF_VK_STRUCT_EXT(s, &feats->device, &feats->host_image_copy, 
FF_VK_EXT_HOST_IMAGE_COPY,
                      
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT);
 
+#ifdef VK_EXT_shader_long_vector
+    FF_VK_STRUCT_EXT(s, &feats->device, &feats->long_vector, 
FF_VK_EXT_LONG_VECTOR,
+                     
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_LONG_VECTOR_FEATURES_EXT);
+#endif
+
 #ifdef VK_EXT_shader_replicated_composites
     FF_VK_STRUCT_EXT(s, &feats->device, &feats->replicated_composites, 
FF_VK_EXT_REPLICATED_COMPOSITES,
                      
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT);
@@ -336,6 +345,10 @@ static void 
device_features_copy_needed(VulkanDeviceFeatures *dst, VulkanDeviceF
     COPY_VAL(subgroup_rotate.shaderSubgroupRotate);
     COPY_VAL(host_image_copy.hostImageCopy);
 
+#ifdef VK_EXT_shader_long_vector
+    COPY_VAL(long_vector.longVector);
+#endif
+
 #ifdef VK_EXT_shader_replicated_composites
     COPY_VAL(replicated_composites.shaderReplicatedComposites);
 #endif
@@ -682,6 +695,9 @@ static const VulkanOptExtension optional_device_exts[] = {
     { VK_KHR_SHADER_SUBGROUP_ROTATE_EXTENSION_NAME,           
FF_VK_EXT_SUBGROUP_ROTATE        },
     { VK_EXT_HOST_IMAGE_COPY_EXTENSION_NAME,                  
FF_VK_EXT_HOST_IMAGE_COPY        },
     { VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME, 
FF_VK_EXT_EXPLICIT_MEM_LAYOUT    },
+#ifdef VK_EXT_shader_long_vector
+    { VK_EXT_SHADER_LONG_VECTOR_EXTENSION_NAME,               
FF_VK_EXT_LONG_VECTOR            },
+#endif
 #ifdef VK_EXT_shader_replicated_composites
     { VK_EXT_SHADER_REPLICATED_COMPOSITES_EXTENSION_NAME,     
FF_VK_EXT_REPLICATED_COMPOSITES  },
 #endif
diff --git a/libavutil/vulkan.c b/libavutil/vulkan.c
index b6abcc8abb..0a60763350 100644
--- a/libavutil/vulkan.c
+++ b/libavutil/vulkan.c
@@ -172,6 +172,11 @@ int ff_vk_load_props(FFVulkanContext *s)
     FF_VK_STRUCT_EXT(s, &s->props, &s->host_image_props, 
FF_VK_EXT_HOST_IMAGE_COPY,
                      
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT);
 
+#ifdef VK_EXT_shader_long_vector
+    FF_VK_STRUCT_EXT(s, &s->props, &s->long_vector_props, 
FF_VK_EXT_LONG_VECTOR,
+                     
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_LONG_VECTOR_PROPERTIES_EXT);
+#endif
+
     s->feats = (VkPhysicalDeviceFeatures2) {
         .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
     };
diff --git a/libavutil/vulkan.h b/libavutil/vulkan.h
index c56cd93e18..6a30a68280 100644
--- a/libavutil/vulkan.h
+++ b/libavutil/vulkan.h
@@ -326,6 +326,9 @@ typedef struct FFVulkanContext {
     VkPhysicalDeviceCooperativeMatrixPropertiesKHR coop_matrix_props;
     VkPhysicalDevicePushDescriptorPropertiesKHR push_desc_props;
     VkPhysicalDeviceOpticalFlowPropertiesNV optical_flow_props;
+#ifdef VK_EXT_shader_long_vector
+    VkPhysicalDeviceShaderLongVectorPropertiesEXT long_vector_props;
+#endif
     VkQueueFamilyQueryResultStatusPropertiesKHR *query_props;
     VkQueueFamilyVideoPropertiesKHR *video_props;
     VkQueueFamilyProperties2 *qf_props;
diff --git a/libavutil/vulkan_functions.h b/libavutil/vulkan_functions.h
index 1b61a66d9a..79fb02e8e5 100644
--- a/libavutil/vulkan_functions.h
+++ b/libavutil/vulkan_functions.h
@@ -53,6 +53,7 @@ typedef uint64_t FFVulkanExtensions;
 #define FF_VK_EXT_ZERO_INITIALIZE        (1ULL << 19) /* 
VK_EXT_zero_initialize_device_memory */
 #define FF_VK_EXT_EXPLICIT_MEM_LAYOUT    (1ULL << 20) /* 
VK_KHR_workgroup_memory_explicit_layout */
 #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 */
 
 /* 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 2214d6ff23..c3c43562a5 100644
--- a/libavutil/vulkan_loader.h
+++ b/libavutil/vulkan_loader.h
@@ -61,6 +61,9 @@ static inline uint64_t ff_vk_extensions_to_mask(const char * 
const *extensions,
         { VK_KHR_SHADER_SUBGROUP_ROTATE_EXTENSION_NAME,    
FF_VK_EXT_SUBGROUP_ROTATE        },
         { VK_EXT_HOST_IMAGE_COPY_EXTENSION_NAME,           
FF_VK_EXT_HOST_IMAGE_COPY        },
         { VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME, 
FF_VK_EXT_EXPLICIT_MEM_LAYOUT },
+#ifdef VK_EXT_shader_long_vector
+        { VK_EXT_SHADER_LONG_VECTOR_EXTENSION_NAME,               
FF_VK_EXT_LONG_VECTOR         },
+#endif
 #ifdef VK_EXT_shader_replicated_composites
         { VK_EXT_SHADER_REPLICATED_COMPOSITES_EXTENSION_NAME, 
FF_VK_EXT_REPLICATED_COMPOSITES   },
 #endif

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

Reply via email to