Skip to content

Commit 494c903

Browse files
committed
hwcontext_vulkan: add support for x2bgr10 and proper DRM mappings for 10-bit images
1 parent 5c66a3a commit 494c903

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

libavutil/hwcontext_vulkan.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,7 @@ static const struct FFVkFormatEntry {
186186
{ VK_FORMAT_B8G8R8A8_UNORM, AV_PIX_FMT_BGR0, VK_IMAGE_ASPECT_COLOR_BIT, 1, 1, 1, { VK_FORMAT_B8G8R8A8_UNORM } },
187187
{ VK_FORMAT_R8G8B8A8_UNORM, AV_PIX_FMT_RGB0, VK_IMAGE_ASPECT_COLOR_BIT, 1, 1, 1, { VK_FORMAT_R8G8B8A8_UNORM } },
188188
{ VK_FORMAT_A2R10G10B10_UNORM_PACK32, AV_PIX_FMT_X2RGB10, VK_IMAGE_ASPECT_COLOR_BIT, 1, 1, 1, { VK_FORMAT_A2R10G10B10_UNORM_PACK32 } },
189+
{ VK_FORMAT_A2B10G10R10_UNORM_PACK32, AV_PIX_FMT_X2BGR10, VK_IMAGE_ASPECT_COLOR_BIT, 1, 1, 1, { VK_FORMAT_A2B10G10R10_UNORM_PACK32 } },
189190

190191
/* Planar RGB */
191192
{ VK_FORMAT_R8_UNORM, AV_PIX_FMT_GBRAP, VK_IMAGE_ASPECT_COLOR_BIT, 1, 4, 4, { VK_FORMAT_R8_UNORM, VK_FORMAT_R8_UNORM, VK_FORMAT_R8_UNORM, VK_FORMAT_R8_UNORM } },
@@ -2791,6 +2792,10 @@ static const struct {
27912792
{ DRM_FORMAT_XRGB8888, VK_FORMAT_B8G8R8A8_UNORM },
27922793
{ DRM_FORMAT_ABGR8888, VK_FORMAT_R8G8B8A8_UNORM },
27932794
{ DRM_FORMAT_XBGR8888, VK_FORMAT_R8G8B8A8_UNORM },
2795+
{ DRM_FORMAT_ARGB2101010, VK_FORMAT_A2B10G10R10_UNORM_PACK32 },
2796+
{ DRM_FORMAT_ABGR2101010, VK_FORMAT_A2R10G10B10_UNORM_PACK32 },
2797+
{ DRM_FORMAT_XRGB2101010, VK_FORMAT_A2B10G10R10_UNORM_PACK32 },
2798+
{ DRM_FORMAT_XBGR2101010, VK_FORMAT_A2R10G10B10_UNORM_PACK32 },
27942799

27952800
// All these DRM_FORMATs were added in the same libdrm commit.
27962801
#ifdef DRM_FORMAT_XYUV8888

libavutil/vulkan.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1162,7 +1162,8 @@ int ff_vk_mt_is_np_rgb(enum AVPixelFormat pix_fmt)
11621162
pix_fmt == AV_PIX_FMT_BGR24 || pix_fmt == AV_PIX_FMT_RGB48 ||
11631163
pix_fmt == AV_PIX_FMT_RGBA64 || pix_fmt == AV_PIX_FMT_RGB565 ||
11641164
pix_fmt == AV_PIX_FMT_BGR565 || pix_fmt == AV_PIX_FMT_BGR0 ||
1165-
pix_fmt == AV_PIX_FMT_0BGR || pix_fmt == AV_PIX_FMT_RGB0)
1165+
pix_fmt == AV_PIX_FMT_0BGR || pix_fmt == AV_PIX_FMT_RGB0 ||
1166+
pix_fmt == AV_PIX_FMT_X2RGB10 || pix_fmt == AV_PIX_FMT_X2BGR10)
11661167
return 1;
11671168
return 0;
11681169
}

0 commit comments

Comments
 (0)