From 49f5cc48cf566d481b0b5fecdd588743781aeecb Mon Sep 17 00:00:00 2001 From: Lucas Fryzek Date: Mon, 26 May 2025 08:06:20 -0400 Subject: [PATCH] anv: Add format conversion for AHARDWAREBUFFER_FORMAT_YCbCr_P010 Reviewed-by: Juston Li Part-of: --- include/android_stub/android/hardware_buffer.h | 8 ++++++++ src/intel/vulkan/anv_android.c | 2 ++ 2 files changed, 10 insertions(+) diff --git a/include/android_stub/android/hardware_buffer.h b/include/android_stub/android/hardware_buffer.h index aa03b4b096e..91cda9d8201 100644 --- a/include/android_stub/android/hardware_buffer.h +++ b/include/android_stub/android/hardware_buffer.h @@ -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 diff --git a/src/intel/vulkan/anv_android.c b/src/intel/vulkan/anv_android.c index d5bff9458d9..5388001c30e 100644 --- a/src/intel/vulkan/anv_android.c +++ b/src/intel/vulkan/anv_android.c @@ -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;