[FFmpeg-cvslog] hwcontext_vulkan: always use create_pnext in vulkan_pool_alloc

Chris Spencer git at videolan.org
Sun Aug 20 23:48:22 EEST 2023

ffmpeg | branch: master | Chris Spencer <spencercw at gmail.com> | Sun Aug 20 19:35:44 2023 +0100| [f0b1cab53816aa53b78e63d3c53d02aa2a081820] | committer: Lynne

hwcontext_vulkan: always use create_pnext in vulkan_pool_alloc

Currently, create_pnext is only used if an applicable external memory
extension is enabled. This will usually the case when used from the command
line, but may not be when the Vulkan context is created manually.

For images used in video decoding, create_pnext contains the video profile
list, which is mandatory.[1] This fixes a GPU crash when using RADV.

[1] https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageCreateInfo.html#VUID-VkImageCreateInfo-usage-04815

Signed-off-by: Chris Spencer <spencercw at gmail.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f0b1cab53816aa53b78e63d3c53d02aa2a081820

 libavutil/hwcontext_vulkan.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c
index 75314f1407..54faf16a69 100644
--- a/libavutil/hwcontext_vulkan.c
+++ b/libavutil/hwcontext_vulkan.c
@@ -2179,7 +2179,8 @@ static AVBufferRef *vulkan_pool_alloc(void *opaque, size_t size)
     err = create_frame(hwfc, &f, hwctx->tiling, hwctx->usage, hwctx->img_flags,
-                       hwctx->nb_layers, eiinfo.handleTypes ? &eiinfo : NULL);
+                       hwctx->nb_layers,
+                       eiinfo.handleTypes ? &eiinfo : hwctx->create_pnext);
     if (err)
         return NULL;

More information about the ffmpeg-cvslog mailing list