From 19cbe451ce7abeaa353fde0ea285222a30c3ecde Mon Sep 17 00:00:00 2001 From: Marcin Radomski Date: Wed, 7 Aug 2024 21:53:09 +0200 Subject: [PATCH] vkAllocateMemory: support DRM format modifiers for dmabuf memory The only aspectMask values valid for vkGetImageSubresourceLayout with VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT are VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT. Reviewed-by: Aaron Ruby Acked-by: Yonggang Luo Acked-by: Adam Jackson Part-of: --- src/gfxstream/guest/vulkan_enc/ResourceTracker.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/gfxstream/guest/vulkan_enc/ResourceTracker.cpp b/src/gfxstream/guest/vulkan_enc/ResourceTracker.cpp index 62cc3b19eae..e8b8aaf09d3 100644 --- a/src/gfxstream/guest/vulkan_enc/ResourceTracker.cpp +++ b/src/gfxstream/guest/vulkan_enc/ResourceTracker.cpp @@ -3808,11 +3808,12 @@ VkResult ResourceTracker::on_vkAllocateMemory(void* context, VkResult input_resu isDmaBufImage = imageInfo.isDmaBufImage; } - // TODO (b/326956485): Support DRM format modifiers for dmabuf memory - // For now, can only externalize memory for linear images if (isDmaBufImage) { const VkImageSubresource imageSubresource = { - .aspectMask = VK_IMAGE_ASPECT_COLOR_BIT, + .aspectMask = exportAllocateInfoPtr->handleTypes & + VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT + ? VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT + : VK_IMAGE_ASPECT_COLOR_BIT, .mipLevel = 0, .arrayLayer = 0, };