vulkan_dpx: fix alignment issue

12-bit images apparently require mod-32 alignment for each line.
Go figure.
This commit is contained in:
Lynne
2025-12-04 15:02:40 +01:00
parent d6458f6a8b
commit 9b14ea0aa1
2 changed files with 5 additions and 4 deletions

View File

@@ -44,8 +44,11 @@ i16vec4 parse_packed_in_32(ivec2 pos, int stride)
#else
i16vec4 parse_packed_in_32(ivec2 pos, int stride)
{
uint line_off = pos.y*(stride*BITS_PER_COMP*COMPONENTS +
(need_align << 3));
uint line_size = stride*BITS_PER_COMP*COMPONENTS;
line_size += line_size & 31;
line_size += need_align << 3;
uint line_off = pos.y*line_size;
uint pix_off = pos.x*BITS_PER_COMP*COMPONENTS;
uint off = (line_off + pix_off >> 5);

View File

@@ -402,9 +402,7 @@ static int vk_decode_dpx_init(AVCodecContext *avctx)
switch (dpx->pix_fmt) {
case AV_PIX_FMT_GRAY10:
case AV_PIX_FMT_GRAY12:
case AV_PIX_FMT_GBRAP10:
case AV_PIX_FMT_GBRAP12:
case AV_PIX_FMT_UYVY422:
case AV_PIX_FMT_YUV444P:
case AV_PIX_FMT_YUVA444P: