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 <zzyiwei@chromium.org>
Reviewed-by: Chad Versace <chadversary@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17808>
This commit is contained in:
Yiwei Zhang 2022-07-29 18:58:15 +00:00 committed by Marge Bot
parent a05fcc94c2
commit 71a0ae2796
1 changed files with 5 additions and 3 deletions

View File

@ -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;
}