anv: Add format conversion for AHARDWAREBUFFER_FORMAT_YCbCr_P010

Reviewed-by: Juston Li <justonli@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35161>
This commit is contained in:
Lucas Fryzek 2025-05-26 08:06:20 -04:00 committed by Marge Bot
parent 03fc7d6a6d
commit 49f5cc48cf
2 changed files with 10 additions and 0 deletions

View file

@ -159,6 +159,14 @@ enum AHardwareBuffer_Format {
*/
AHARDWAREBUFFER_FORMAT_Y8Cb8Cr8_420 = 0x23,
/**
* YUV P010 format.
* Must have an even width and height. Can be accessed in OpenGL
* shaders through an external sampler. Does not support mip-maps
* cube-maps or multi-layered textures.
*/
AHARDWAREBUFFER_FORMAT_YCbCr_P010 = 0x36,
/**
* Corresponding formats:
* Vulkan: VK_FORMAT_R8_UNORM

View file

@ -119,6 +119,8 @@ vk_format_from_android(unsigned android_format, unsigned android_usage)
return VK_FORMAT_G8_B8R8_2PLANE_420_UNORM;
case AHARDWAREBUFFER_FORMAT_YV12:
return VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM;
case AHARDWAREBUFFER_FORMAT_YCbCr_P010:
return VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16;
case AHARDWAREBUFFER_FORMAT_IMPLEMENTATION_DEFINED:
if (android_usage & BUFFER_USAGE_CAMERA_MASK)
return VK_FORMAT_G8_B8R8_2PLANE_420_UNORM;