Mesa (main): radv: implement vkGetDeviceImageMemoryRequirementsKHR()

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Oct 11 09:14:45 UTC 2021


Module: Mesa
Branch: main
Commit: 6061609d0f4969331ec8be76b8ef56e6f1a04676
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6061609d0f4969331ec8be76b8ef56e6f1a04676

Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date:   Tue Sep 21 09:06:34 2021 +0200

radv: implement vkGetDeviceImageMemoryRequirementsKHR()

Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13193>

---

 src/amd/vulkan/radv_device.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c
index b06a4cf9503..8a79a9cdc21 100644
--- a/src/amd/vulkan/radv_device.c
+++ b/src/amd/vulkan/radv_device.c
@@ -5447,6 +5447,31 @@ radv_GetImageMemoryRequirements2(VkDevice _device, const VkImageMemoryRequiremen
    }
 }
 
+void
+radv_GetDeviceImageMemoryRequirementsKHR(VkDevice device,
+                                         const VkDeviceImageMemoryRequirementsKHR *pInfo,
+                                         VkMemoryRequirements2 *pMemoryRequirements)
+{
+   UNUSED VkResult result;
+   VkImage image;
+
+   /* Determining the image size/alignment require to create a surface, which is complicated without
+    * creating an image.
+    * TODO: Avoid creating an image.
+    */
+   result = radv_CreateImage(device, pInfo->pCreateInfo, NULL, &image);
+   assert(result == VK_SUCCESS);
+
+   VkImageMemoryRequirementsInfo2 info2 = {
+      .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
+      .image = image,
+   };
+
+   radv_GetImageMemoryRequirements2(device, &info2, pMemoryRequirements);
+
+   radv_DestroyImage(device, image, NULL);
+}
+
 void
 radv_GetDeviceMemoryCommitment(VkDevice device, VkDeviceMemory memory,
                                VkDeviceSize *pCommittedMemoryInBytes)



More information about the mesa-commit mailing list