From 89f59389303069fa70d19e06bbc32efcd7c97bd7 Mon Sep 17 00:00:00 2001 From: Yiwei Zhang Date: Tue, 15 Jul 2025 19:15:16 +0000 Subject: [PATCH] venus: adopt vk_android_get_ahb_buffer_properties Acked-by: Rob Clark Part-of: --- src/virtio/vulkan/vn_physical_device.c | 38 ++++++++------------------ 1 file changed, 12 insertions(+), 26 deletions(-) diff --git a/src/virtio/vulkan/vn_physical_device.c b/src/virtio/vulkan/vn_physical_device.c index 18d3a34e554..802a0a5f2ac 100644 --- a/src/virtio/vulkan/vn_physical_device.c +++ b/src/virtio/vulkan/vn_physical_device.c @@ -2984,6 +2984,13 @@ vn_GetPhysicalDeviceExternalBufferProperties( return; } + if (is_ahb) { + assert(physical_dev->instance->renderer->info.has_dma_buf_import); + vk_android_get_ahb_buffer_properties( + physicalDevice, pExternalBufferInfo, pExternalBufferProperties); + return; + } + VkPhysicalDeviceExternalBufferInfo local_info; if (pExternalBufferInfo->handleType != renderer_handle_type) { local_info = *pExternalBufferInfo; @@ -3002,32 +3009,11 @@ vn_GetPhysicalDeviceExternalBufferProperties( ~VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT; } - if (is_ahb) { - props->compatibleHandleTypes = - VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID; - /* AHB backed buffer requires renderer to support import bit while it - * also requires the renderer to must not advertise dedicated only bit - */ - if (!(props->externalMemoryFeatures & - VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT) || - (props->externalMemoryFeatures & - VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT)) { - props->externalMemoryFeatures = 0; - props->exportFromImportedHandleTypes = 0; - return; - } - props->externalMemoryFeatures = - VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT | - VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT; - props->exportFromImportedHandleTypes = - VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID; - } else { - props->compatibleHandleTypes = supported_handle_types; - props->exportFromImportedHandleTypes = - (props->exportFromImportedHandleTypes & renderer_handle_type) - ? supported_handle_types - : 0; - } + props->compatibleHandleTypes = supported_handle_types; + props->exportFromImportedHandleTypes = + (props->exportFromImportedHandleTypes & renderer_handle_type) + ? supported_handle_types + : 0; } void