radv: implement vkGetDeviceImageSparseMemoryRequirementsKHR()

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13193>
This commit is contained in:
Samuel Pitoiset 2021-09-21 09:06:45 +02:00 committed by Marge Bot
parent 6061609d0f
commit 19f7a3f01f
1 changed files with 27 additions and 0 deletions

View File

@ -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,