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 <aruby@blackberry.com>
Acked-by: Yonggang Luo <luoyonggang@gmail.com>
Acked-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27246>
This commit is contained in:
Marcin Radomski
2024-08-07 21:53:09 +02:00
committed by Marge Bot
parent 8847a50a04
commit 19cbe451ce
@@ -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,
};