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;