From 1c2cf527da5ab8db34458e072244035a53dcf6af Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Wed, 28 Jan 2026 12:52:51 -0800 Subject: [PATCH] Do not set banDedicated for android AHB on panvk The spec says Android hardware buffers have intrinsic width, height, format, and usage properties, so Vulkan images bound to memory imported from an Android hardware buffer must use dedicated allocations: VkMemoryDedicatedRequirements::requiresDedicatedAllocation must be VK_TRUE for images created with VkExternalMemoryImageCreateInfo::handleTypes that includes VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID. Stripping VkMemoryDedicatedAllocateInfo causes segfaults on Mesa panvk driver at least. --- renderdoc/driver/vulkan/wrappers/vk_resource_funcs.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/renderdoc/driver/vulkan/wrappers/vk_resource_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_resource_funcs.cpp index 193cdb5f1..ded832600 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_resource_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_resource_funcs.cpp @@ -3064,10 +3064,10 @@ VkResult WrappedVulkan::vkCreateImage(VkDevice device, const VkImageCreateInfo * resInfo.memreqs.alignment = mrq.alignment; resInfo.memreqs.memoryTypeBits = mrq.memoryTypeBits; - RDCWARN( - "Android hardware buffer backed image, so pre-emptively banning dedicated " - "memory"); - resInfo.banDedicated = true; + resInfo.banDedicated = + m_PhysicalDeviceData.driverProps.driverID != VK_DRIVER_ID_MESA_PANVK; + RDCWARN("Android hardware buffer backed image, %s dedicated memory", + resInfo.banDedicated ? "banning" : "allowing"); } else {