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

Git pushed a commit to branch master
in repository ffmpeg.

commit 709a72c374dc812c4e363fc68e57cfa28d1158c8
Author:     Lynne <[email protected]>
AuthorDate: Tue Aug 4 16:31:35 2026 +0900
Commit:     Lynne <[email protected]>
CommitDate: Wed Aug 5 16:04:37 2026 +0900

    vulkan_decode: prefer device-local memory for the bitstream buffer
    
    Fixes #23865
---
 libavcodec/vulkan_decode.c | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/libavcodec/vulkan_decode.c b/libavcodec/vulkan_decode.c
index 8b29d81e3a..d5c069de53 100644
--- a/libavcodec/vulkan_decode.c
+++ b/libavcodec/vulkan_decode.c
@@ -305,15 +305,19 @@ int ff_vk_decode_add_slice(AVCodecContext *avctx, 
FFVulkanDecodePicture *vp,
             buf_pnext = (void *)ff_vk_find_struct(ctx->s.hwfc->create_pnext,
                                                   
VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR);
 
+        VkBufferUsageFlags buf_usage = DECODER_IS_SDR(avctx->codec_id) ?
+                                       (VK_BUFFER_USAGE_STORAGE_BUFFER_BIT |
+                                        
VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT) :
+                                       
VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR;
+
         err = ff_vk_get_pooled_buffer(&ctx->s, &ctx->buf_pool, &new_buf,
-                                      DECODER_IS_SDR(avctx->codec_id) ?
-                                      (VK_BUFFER_USAGE_STORAGE_BUFFER_BIT |
-                                       
VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT) :
-                                      VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR,
-                                      buf_pnext, buf_size,
+                                      buf_usage, buf_pnext, buf_size,
                                       VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT |
-                                      (DECODER_IS_SDR(avctx->codec_id) ?
-                                       VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT : 
0x0));
+                                      VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT);
+        if (err < 0)
+            err = ff_vk_get_pooled_buffer(&ctx->s, &ctx->buf_pool, &new_buf,
+                                          buf_usage, buf_pnext, buf_size,
+                                          VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT);
         if (err < 0)
             return err;
 

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

Reply via email to