mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 11:28:05 +02:00
vulkan/format: add a 10-bit video format
This adds support to the generic vulkan format code for VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 which is used for 10-bit H265. Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com> (Updated version acked by Lynne on irc) v2: disable these for freedreno Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20389>
This commit is contained in:
parent
41dbeca4c2
commit
589d4ff0cb
2 changed files with 11 additions and 0 deletions
|
|
@ -45,6 +45,9 @@ enum pipe_format
|
|||
tu_vk_format_to_pipe_format(VkFormat vk_format)
|
||||
{
|
||||
switch (vk_format) {
|
||||
case VK_FORMAT_R10X6_UNORM_PACK16:
|
||||
case VK_FORMAT_R10X6G10X6_UNORM_2PACK16:
|
||||
return PIPE_FORMAT_NONE; /* These fail some CTS tests */
|
||||
case VK_FORMAT_G8B8G8R8_422_UNORM: /* YUYV */
|
||||
return PIPE_FORMAT_R8G8_R8B8_UNORM;
|
||||
case VK_FORMAT_B8G8R8G8_422_UNORM: /* UYVY */
|
||||
|
|
|
|||
|
|
@ -261,6 +261,10 @@ vk_format_to_pipe_format(enum VkFormat vkformat)
|
|||
{
|
||||
if (vkformat >= ARRAY_SIZE(vk_format_map)) {
|
||||
switch (vkformat) {
|
||||
case VK_FORMAT_R10X6_UNORM_PACK16:
|
||||
return PIPE_FORMAT_R16_UNORM;
|
||||
case VK_FORMAT_R10X6G10X6_UNORM_2PACK16:
|
||||
return PIPE_FORMAT_R16G16_UNORM;
|
||||
case VK_FORMAT_G8B8G8R8_422_UNORM:
|
||||
return PIPE_FORMAT_YUYV;
|
||||
case VK_FORMAT_B8G8R8G8_422_UNORM:
|
||||
|
|
@ -285,6 +289,8 @@ vk_format_to_pipe_format(enum VkFormat vkformat)
|
|||
return PIPE_FORMAT_Y16_U16V16_422_UNORM;
|
||||
case VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM:
|
||||
return PIPE_FORMAT_Y16_U16_V16_444_UNORM;
|
||||
case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16:
|
||||
return PIPE_FORMAT_P010;
|
||||
case VK_FORMAT_A4R4G4B4_UNORM_PACK16:
|
||||
return PIPE_FORMAT_B4G4R4A4_UNORM;
|
||||
case VK_FORMAT_A4B4G4R4_UNORM_PACK16:
|
||||
|
|
@ -369,6 +375,8 @@ vk_format_get_plane_format(VkFormat format, unsigned plane_id)
|
|||
case VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM:
|
||||
case VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM:
|
||||
return VK_FORMAT_R16_UNORM;
|
||||
case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16:
|
||||
return plane_id ? VK_FORMAT_R10X6G10X6_UNORM_2PACK16 : VK_FORMAT_R10X6_UNORM_PACK16;
|
||||
case VK_FORMAT_G16_B16R16_2PLANE_420_UNORM:
|
||||
case VK_FORMAT_G16_B16R16_2PLANE_422_UNORM:
|
||||
return plane_id ? VK_FORMAT_R16G16_UNORM : VK_FORMAT_R16_UNORM;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue