Skip to content

Commit 1c2cf52

Browse files
olvaffebaldurk
authored andcommitted
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.
1 parent 8552eec commit 1c2cf52

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

renderdoc/driver/vulkan/wrappers/vk_resource_funcs.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3064,10 +3064,10 @@ VkResult WrappedVulkan::vkCreateImage(VkDevice device, const VkImageCreateInfo *
30643064
resInfo.memreqs.alignment = mrq.alignment;
30653065
resInfo.memreqs.memoryTypeBits = mrq.memoryTypeBits;
30663066

3067-
RDCWARN(
3068-
"Android hardware buffer backed image, so pre-emptively banning dedicated "
3069-
"memory");
3070-
resInfo.banDedicated = true;
3067+
resInfo.banDedicated =
3068+
m_PhysicalDeviceData.driverProps.driverID != VK_DRIVER_ID_MESA_PANVK;
3069+
RDCWARN("Android hardware buffer backed image, %s dedicated memory",
3070+
resInfo.banDedicated ? "banning" : "allowing");
30713071
}
30723072
else
30733073
{

0 commit comments

Comments
 (0)