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