Skip to content

Improve YCbCr Multiplane Format Support in vk_format.c

Mohamed Ahmed requested to merge mohamexiety/mesa:vulkan-util-ycbcr-format into main

Currently, the multi-planar vk_format_get_plane_...() helpers in vk_format.c work through converting the input VkFormat into PIPE_FORMAT, obtain the format data using util functions, and then at last return said data. However, PIPE_FORMAT does not support all the YCbCr multiplane formats, despite supporting the individual formats of these planes. At the same time, the ycbcr_infos struct was missing support for the 10-bit/12-bit YCbCr formats. Finally, VK_EXT_ycbcr_2plane_444_formats formats weren't advertised as supported despite the underlying formats already being wired up. This patch aims to fix all that by supporting the missing formats and rewiring the vk_format helpers to go through ycbcr_info rather than PIPE_FORMAT, improving our YCbCr multi-plane format support.

Merge request reports