diff options
author | Wu Jianhua <jianhua.wu@intel.com> | 2022-01-05 14:33:30 +0800 |
---|---|---|
committer | Lynne <dev@lynne.ee> | 2022-01-05 14:14:54 +0100 |
commit | b4d254f2e690ad03cd6a0b15161742ec26c97583 (patch) | |
tree | 0d7949a8555931354113bd1c1bf521bfc7ff668f | |
parent | b9dbb6c11415e78e36f9f9d2643b20e87e14f7f5 (diff) | |
download | ffmpeg-b4d254f2e690ad03cd6a0b15161742ec26c97583.tar.gz |
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 <jianhua.wu@intel.com>
-rw-r--r-- | libavutil/hwcontext_vulkan.c | 12 |
1 files changed, 7 insertions, 5 deletions
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]; } } |