diff --git a/.pick_status.json b/.pick_status.json index 3d945fadc93..81ce62871f2 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -584,7 +584,7 @@ "description": "venus: use dedicated allocation for ANB image memory import", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/virtio/vulkan/vn_android.c b/src/virtio/vulkan/vn_android.c index 9f85470a73e..abbb0626887 100644 --- a/src/virtio/vulkan/vn_android.c +++ b/src/virtio/vulkan/vn_android.c @@ -581,8 +581,15 @@ vn_android_image_from_anb_internal(struct vn_device *dev, goto fail; } + const bool prefer_dedicated = + img->requirements[0].dedicated.prefersDedicatedAllocation == VK_TRUE; + const VkMemoryDedicatedAllocateInfo dedicated_info = { + .sType = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO, + .image = vn_image_to_handle(img), + }; const VkImportMemoryFdInfoKHR import_fd_info = { .sType = VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR, + .pNext = prefer_dedicated ? &dedicated_info : NULL, .handleType = VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT, .fd = dup_fd, };