From 4075dd16ab8ceb1abd852e685118e88a8c4cd749 Mon Sep 17 00:00:00 2001 From: Lionel Landwerlin Date: Wed, 28 Jul 2021 14:36:45 +0300 Subject: [PATCH] anv: implement vkGetDeviceImageMemoryRequirementsKHR Reviewed-by: Jason Ekstrand Part-of: --- src/intel/vulkan/anv_image.c | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/src/intel/vulkan/anv_image.c b/src/intel/vulkan/anv_image.c index 7f152fe..273f79f 100644 --- a/src/intel/vulkan/anv_image.c +++ b/src/intel/vulkan/anv_image.c @@ -53,8 +53,8 @@ memory_range_end(struct anv_image_memory_range memory_range) } /** - * Get binding for VkImagePlaneMemoryRequirementsInfo and - * VkBindImagePlaneMemoryInfo. + * Get binding for VkImagePlaneMemoryRequirementsInfo, + * VkBindImagePlaneMemoryInfo and VkDeviceImageMemoryRequirementsKHR. */ static struct anv_image_binding * image_aspect_to_binding(struct anv_image *image, VkImageAspectFlags aspect) @@ -1687,6 +1687,25 @@ void anv_GetImageMemoryRequirements2( pMemoryRequirements); } +void anv_GetDeviceImageMemoryRequirementsKHR( + VkDevice _device, + const VkDeviceImageMemoryRequirementsKHR* pInfo, + VkMemoryRequirements2* pMemoryRequirements) +{ + ANV_FROM_HANDLE(anv_device, device, _device); + struct anv_image image = { 0 }; + + ASSERTED VkResult result = + anv_image_init_from_create_info(device, &image, pInfo->pCreateInfo); + assert(result == VK_SUCCESS); + + VkImageAspectFlags aspects = + image.disjoint ? pInfo->planeAspect : image.vk.aspects; + + anv_image_get_memory_requirements(device, &image, aspects, + pMemoryRequirements); +} + void anv_GetImageSparseMemoryRequirements( VkDevice device, VkImage image, -- 2.7.4