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

Git pushed a commit to branch master
in repository ffmpeg.

commit cf0ce1b7e4840f69793b550c3062a17c85af1948
Author:     Lynne <[email protected]>
AuthorDate: Sat Jan 3 15:31:29 2026 +0100
Commit:     Lynne <[email protected]>
CommitDate: Mon Jan 12 17:28:41 2026 +0100

    hwcontext_vulkan: enable the VK_EXT_shader_replicated_composites extension
    
    Its required to use certain features in SPIR-V that glslang uses.
---
 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 57311652c0..d911df5950 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_replicated_composites
+    VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT 
replicated_composites;
+#endif
+
 #ifdef VK_EXT_zero_initialize_device_memory
     VkPhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT zero_initialize;
 #endif
@@ -227,6 +231,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_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);
+#endif
+
 #ifdef VK_EXT_zero_initialize_device_memory
     FF_VK_STRUCT_EXT(s, &feats->device, &feats->zero_initialize, 
FF_VK_EXT_ZERO_INITIALIZE,
                      
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_DEVICE_MEMORY_FEATURES_EXT);
@@ -322,6 +331,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_replicated_composites
+    COPY_VAL(replicated_composites.shaderReplicatedComposites);
+#endif
+
 #ifdef VK_EXT_zero_initialize_device_memory
     COPY_VAL(zero_initialize.zeroInitializeDeviceMemory);
 #endif
@@ -664,6 +677,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_replicated_composites
+    { VK_EXT_SHADER_REPLICATED_COMPOSITES_EXTENSION_NAME,     
FF_VK_EXT_REPLICATED_COMPOSITES  },
+#endif
 #ifdef VK_EXT_zero_initialize_device_memory
     { VK_EXT_ZERO_INITIALIZE_DEVICE_MEMORY_EXTENSION_NAME,    
FF_VK_EXT_ZERO_INITIALIZE        },
 #endif
diff --git a/libavutil/vulkan_functions.h b/libavutil/vulkan_functions.h
index 7061052566..1b61a66d9a 100644
--- a/libavutil/vulkan_functions.h
+++ b/libavutil/vulkan_functions.h
@@ -52,6 +52,7 @@ typedef uint64_t FFVulkanExtensions;
 #define FF_VK_EXT_HOST_IMAGE_COPY        (1ULL << 18) /* 
VK_EXT_host_image_copy */
 #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 */
 
 /* 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 a66115ac01..2214d6ff23 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_replicated_composites
+        { VK_EXT_SHADER_REPLICATED_COMPOSITES_EXTENSION_NAME, 
FF_VK_EXT_REPLICATED_COMPOSITES   },
+#endif
 #ifdef VK_EXT_zero_initialize_device_memory
         { VK_EXT_ZERO_INITIALIZE_DEVICE_MEMORY_EXTENSION_NAME, 
FF_VK_EXT_ZERO_INITIALIZE    },
 #endif

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

Reply via email to