From 71a0ae2796e7aed5a202932f7795cfb1d372b89b Mon Sep 17 00:00:00 2001 From: Yiwei Zhang Date: Fri, 29 Jul 2022 18:58:15 +0000 Subject: [PATCH] anv: enable VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM for modifier support This is a missed format to properly support media interop for Android. Currently only used when layering GL atop Vulkan on Android, but will be used directly with Vulkan when the platform default renderer has switched to skiavk in modern Android. Test: CtsMediaTestCases and CtsVideoTestCases with angle on venus on anv Signed-off-by: Yiwei Zhang Reviewed-by: Chad Versace Part-of: --- src/intel/vulkan/anv_formats.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/intel/vulkan/anv_formats.c b/src/intel/vulkan/anv_formats.c index fca2e384331..029a6080926 100644 --- a/src/intel/vulkan/anv_formats.c +++ b/src/intel/vulkan/anv_formats.c @@ -776,10 +776,12 @@ anv_get_image_format_features2(const struct intel_device_info *devinfo, /* VK_ANDROID_external_memory_android_hardware_buffer in Virtio-GPU * Venus driver layers on top of VK_EXT_image_drm_format_modifier of - * the host Vulkan driver, and VK_FORMAT_G8_B8R8_2PLANE_420_UNORM is - * required to support camera/media interop in Android. + * the host Vulkan driver, and both VK_FORMAT_G8_B8R8_2PLANE_420_UNORM + * and VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM and required to support + * camera/media interop in Android. */ - if (vk_format != VK_FORMAT_G8_B8R8_2PLANE_420_UNORM) { + if (vk_format != VK_FORMAT_G8_B8R8_2PLANE_420_UNORM && + vk_format != VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM) { anv_finishme("support more multi-planar formats with DRM modifiers"); return 0; }