Support was partially added previously in vulkan.c, but now it's fully supported.
Unified · Split
| @@ -351,6 +351,7 @@ static const struct FFVkFormatEntry { · 350 unmodified lines | |||
| 351 | { VK_FORMAT_R32G32B32A32_UINT, AV_PIX_FMT_RGBA128, VK_IMAGE_ASPECT_COLOR_BIT, 1, 1, 1, { VK_FORMAT_R32G32B32A32_UINT } }, | 351 | { VK_FORMAT_R32G32B32A32_UINT, AV_PIX_FMT_RGBA128, VK_IMAGE_ASPECT_COLOR_BIT, 1, 1, 1, { VK_FORMAT_R32G32B32A32_UINT } }, |
| 352 | 352 | ||
| 353 | /* Planar RGB */ | 353 | /* Planar RGB */ |
| 354 | { VK_FORMAT_R8_UNORM, AV_PIX_FMT_GBRP, VK_IMAGE_ASPECT_COLOR_BIT, 3, 3, 3, { VK_FORMAT_R8_UNORM, VK_FORMAT_R8_UNORM, VK_FORMAT_R8_UNORM } }, | ||
| 354 | { VK_FORMAT_R16_UNORM, AV_PIX_FMT_GBRP10, VK_IMAGE_ASPECT_COLOR_BIT, 3, 3, 3, { VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM } }, | 355 | { VK_FORMAT_R16_UNORM, AV_PIX_FMT_GBRP10, VK_IMAGE_ASPECT_COLOR_BIT, 3, 3, 3, { VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM } }, |
| 355 | { VK_FORMAT_R16_UNORM, AV_PIX_FMT_GBRP12, VK_IMAGE_ASPECT_COLOR_BIT, 3, 3, 3, { VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM } }, | 356 | { VK_FORMAT_R16_UNORM, AV_PIX_FMT_GBRP12, VK_IMAGE_ASPECT_COLOR_BIT, 3, 3, 3, { VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM } }, |
| 356 | { VK_FORMAT_R16_UNORM, AV_PIX_FMT_GBRP14, VK_IMAGE_ASPECT_COLOR_BIT, 3, 3, 3, { VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM } }, | 357 | { VK_FORMAT_R16_UNORM, AV_PIX_FMT_GBRP14, VK_IMAGE_ASPECT_COLOR_BIT, 3, 3, 3, { VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM } }, |
| @@ -1493,7 +1493,8 @@ int ff_vk_mt_is_np_rgb(enum AVPixelFormat pix_fmt) · 1492 unmodified lines | |||
| 1493 | pix_fmt == AV_PIX_FMT_GBRPF32 || pix_fmt == AV_PIX_FMT_GBRAPF32 || | 1493 | pix_fmt == AV_PIX_FMT_GBRPF32 || pix_fmt == AV_PIX_FMT_GBRAPF32 || |
| 1494 | pix_fmt == AV_PIX_FMT_X2RGB10 || pix_fmt == AV_PIX_FMT_X2BGR10 || | 1494 | pix_fmt == AV_PIX_FMT_X2RGB10 || pix_fmt == AV_PIX_FMT_X2BGR10 || |
| 1495 | pix_fmt == AV_PIX_FMT_RGBAF32 || pix_fmt == AV_PIX_FMT_RGBF32 || | 1495 | pix_fmt == AV_PIX_FMT_RGBAF32 || pix_fmt == AV_PIX_FMT_RGBF32 || |
| 1496 | pix_fmt == AV_PIX_FMT_RGBA128 || pix_fmt == AV_PIX_FMT_RGB96) | 1496 | pix_fmt == AV_PIX_FMT_RGBA128 || pix_fmt == AV_PIX_FMT_RGB96 || |
| 1497 | pix_fmt == AV_PIX_FMT_GBRP) | ||
| 1497 | return 1; | 1498 | return 1; |
| 1498 | return 0; | 1499 | return 0; |
| 1499 | } | 1500 | } |
| @@ -1501,8 +1502,8 @@ int ff_vk_mt_is_np_rgb(enum AVPixelFormat pix_fmt) · 1 unmodified line | |||
| 1501 | void ff_vk_set_perm(enum AVPixelFormat pix_fmt, int lut[4], int inv) | 1502 | void ff_vk_set_perm(enum AVPixelFormat pix_fmt, int lut[4], int inv) |
| 1502 | { | 1503 | { |
| 1503 | switch (pix_fmt) { | 1504 | switch (pix_fmt) { |
| 1504 | case AV_PIX_FMT_GBRAP: | ||
| 1505 | case AV_PIX_FMT_GBRP: | 1505 | case AV_PIX_FMT_GBRP: |
| 1506 | case AV_PIX_FMT_GBRAP: | ||
| 1506 | case AV_PIX_FMT_GBRAP10: | 1507 | case AV_PIX_FMT_GBRAP10: |
| 1507 | case AV_PIX_FMT_GBRAP12: | 1508 | case AV_PIX_FMT_GBRAP12: |
| 1508 | case AV_PIX_FMT_GBRAP14: | 1509 | case AV_PIX_FMT_GBRAP14: |
| @@ -1605,6 +1606,7 @@ const char *ff_vk_shader_rep_fmt(enum AVPixelFormat pix_fmt, · 96 unmodified lines | |||
| 1605 | }; | 1606 | }; |
| 1606 | return rep_tab[rep_fmt]; | 1607 | return rep_tab[rep_fmt]; |
| 1607 | } | 1608 | } |
| 1609 | case AV_PIX_FMT_GBRP: | ||
| 1608 | case AV_PIX_FMT_GRAY8: | 1610 | case AV_PIX_FMT_GRAY8: |
| 1609 | case AV_PIX_FMT_GBRAP: | 1611 | case AV_PIX_FMT_GBRAP: |
| 1610 | case AV_PIX_FMT_YUV420P: | 1612 | case AV_PIX_FMT_YUV420P: |