Mesa (main): radv: implement vkGetDeviceImageSparseMemoryRequirementsKHR()
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Mon Oct 11 09:14:45 UTC 2021
Module: Mesa
Branch: main
Commit: 19f7a3f01fb57b8b04304347d84c97edac3cdd23
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=19f7a3f01fb57b8b04304347d84c97edac3cdd23
Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date: Tue Sep 21 09:06:45 2021 +0200
radv: implement vkGetDeviceImageSparseMemoryRequirementsKHR()
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_formats.c | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/src/amd/vulkan/radv_formats.c b/src/amd/vulkan/radv_formats.c
index adfcc5265ef..158ca1e311e 100644
--- a/src/amd/vulkan/radv_formats.c
+++ b/src/amd/vulkan/radv_formats.c
@@ -1792,6 +1792,33 @@ radv_GetImageSparseMemoryRequirements2(VkDevice _device,
};
}
+void
+radv_GetDeviceImageSparseMemoryRequirementsKHR(VkDevice device,
+ const VkDeviceImageMemoryRequirementsKHR* pInfo,
+ uint32_t *pSparseMemoryRequirementCount,
+ VkSparseImageMemoryRequirements2 *pSparseMemoryRequirements)
+{
+ 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);
+
+ VkImageSparseMemoryRequirementsInfo2 info2 = {
+ .sType = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
+ .image = image,
+ };
+
+ radv_GetImageSparseMemoryRequirements2(device, &info2, pSparseMemoryRequirementCount,
+ pSparseMemoryRequirements);
+
+ radv_DestroyImage(device, image, NULL);
+}
+
void
radv_GetPhysicalDeviceExternalBufferProperties(
VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo *pExternalBufferInfo,
More information about the mesa-commit
mailing list