From c4ecc643bb219872325b61544ecba4c95ada8d51 Mon Sep 17 00:00:00 2001 From: Wu Jianhua Date: Wed, 5 Jan 2022 14:33:30 +0800 Subject: avutil/hwcontext_vulkan: fixed incorrect memory offset This commit fixed hwupload in Vulkan: ffmpeg -init_hw_device vulkan -i test.jpg -vf hwupload,hwdownload,format=yuv420p -y out.jpg Signed-off-by: Wu Jianhua --- libavutil/hwcontext_vulkan.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'libavutil/hwcontext_vulkan.c') diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c index e90edea111..60a6cf6a91 100644 --- a/libavutil/hwcontext_vulkan.c +++ b/libavutil/hwcontext_vulkan.c @@ -1872,12 +1872,14 @@ static int alloc_bind_mem(AVHWFramesContext *hwfc, AVVkFrame *f, f->size[0] = cont_memory_requirements.size; - for (int i = 0; i < planes; i++) { - bind_info[i].sType = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO; - bind_info[i].image = f->img[i]; - bind_info[i].memory = f->mem[0]; - bind_info[i].memoryOffset = !i ? 0 : cont_mem_size_list[i - 1]; + for (int i = 0, offset = 0; i < planes; i++) { + bind_info[i].sType = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO; + bind_info[i].image = f->img[i]; + bind_info[i].memory = f->mem[0]; + bind_info[i].memoryOffset = offset; + f->offset[i] = bind_info[i].memoryOffset; + offset += cont_mem_size_list[i]; } } -- cgit v1.2.3