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

Git pushed a commit to branch master
in repository ffmpeg.

commit 771b58c0b656477d338f86daf0827c1234b0b66e
Author:     averne <[email protected]>
AuthorDate: Tue Dec 23 14:04:07 2025 +0100
Commit:     Lynne <[email protected]>
CommitDate: Mon Jan 12 17:28:42 2026 +0100

    vulkan/prores: fix buffer alignments
---
 libavcodec/vulkan_prores.c | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/libavcodec/vulkan_prores.c b/libavcodec/vulkan_prores.c
index 417a6b3bec..019637f6ee 100644
--- a/libavcodec/vulkan_prores.c
+++ b/libavcodec/vulkan_prores.c
@@ -42,7 +42,8 @@ typedef struct ProresVulkanDecodePicture {
     uint32_t bitstream_size;
     uint32_t slice_num;
 
-    uint32_t slice_offsets_sz, mb_params_sz;
+    uint32_t slice_offsets_sz,  mb_params_sz;
+    uint32_t slice_offsets_off, mb_params_off;
 } ProresVulkanDecodePicture;
 
 typedef struct ProresVulkanDecodeContext {
@@ -89,6 +90,10 @@ static int vk_prores_start_frame(AVCodecContext          
*avctx,
     pp->slice_offsets_sz = (pr->slice_count + 1) * sizeof(uint32_t);
     pp->mb_params_sz     = pr->mb_width * pr->mb_height * sizeof(uint8_t);
 
+    pp->slice_offsets_off = 0;
+    pp->mb_params_off     = FFALIGN(pp->slice_offsets_off + 
pp->slice_offsets_sz,
+                                    
ctx->s.props.properties.limits.minStorageBufferOffsetAlignment);
+
     /* Host map the input slices data if supported */
     if (!vp->slices_buf && ctx->s.extensions & FF_VK_EXT_EXTERNAL_HOST_MEMORY)
         RET(ff_vk_host_map_buffer(&ctx->s, &vp->slices_buf, buffer_ref->data,
@@ -96,11 +101,11 @@ static int vk_prores_start_frame(AVCodecContext          
*avctx,
                                   VK_BUFFER_USAGE_STORAGE_BUFFER_BIT |
                                   VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT));
 
-    /* Allocate slice offsets buffer */
+    /* Allocate metadata buffer */
     RET(ff_vk_get_pooled_buffer(&ctx->s, &pv->metadata_pool,
                                 &pp->metadata_buf,
                                 VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,
-                                NULL, pp->slice_offsets_sz + pp->mb_params_sz,
+                                NULL, pp->mb_params_off + pp->mb_params_sz,
                                 VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT |
                                 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT));
 
@@ -273,12 +278,14 @@ static int vk_prores_end_frame(AVCodecContext *avctx)
     /* Entropy decode */
     ff_vk_shader_update_desc_buffer(&ctx->s, exec, &pv->vld,
                                     0, 0, 0,
-                                    metadata, 0,
+                                    metadata,
+                                    pp->slice_offsets_off,
                                     pp->slice_offsets_sz,
                                     VK_FORMAT_UNDEFINED);
     ff_vk_shader_update_desc_buffer(&ctx->s, exec, &pv->vld,
                                     0, 1, 0,
-                                    metadata, pp->slice_offsets_sz,
+                                    metadata,
+                                    pp->mb_params_off,
                                     pp->mb_params_sz,
                                     VK_FORMAT_UNDEFINED);
     ff_vk_shader_update_img_array(&ctx->s, exec, &pv->vld,
@@ -320,7 +327,8 @@ static int vk_prores_end_frame(AVCodecContext *avctx)
     /* Inverse transform */
     ff_vk_shader_update_desc_buffer(&ctx->s, exec, &pv->idct,
                                     0, 0, 0,
-                                    metadata, pp->slice_offsets_sz,
+                                    metadata,
+                                    pp->mb_params_off,
                                     pp->mb_params_sz,
                                     VK_FORMAT_UNDEFINED);
     ff_vk_shader_update_img_array(&ctx->s, exec, &pv->idct,

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

Reply via email to