vulkan/runtime: implement vkGetBufferMemoryRequirements2()
Signed-off-by: Mohamed Ahmed <mohamedahmedegypt2001@gmail.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21898>
diff --git a/src/vulkan/runtime/vk_buffer.c b/src/vulkan/runtime/vk_buffer.c
index 2e7683d..84c113e 100644
--- a/src/vulkan/runtime/vk_buffer.c
+++ b/src/vulkan/runtime/vk_buffer.c
@@ -92,6 +92,33 @@
*pMemoryRequirements = reqs.memoryRequirements;
}
+VKAPI_ATTR void VKAPI_CALL
+vk_common_GetBufferMemoryRequirements2(VkDevice _device,
+ const VkBufferMemoryRequirementsInfo2 *pInfo,
+ VkMemoryRequirements2 *pMemoryRequirements)
+{
+ VK_FROM_HANDLE(vk_device, device, _device);
+ VK_FROM_HANDLE(vk_buffer, buffer, pInfo->buffer);
+
+ VkBufferCreateInfo pCreateInfo = {
+ .sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
+ .pNext = NULL,
+ .usage = buffer->usage,
+ .size = buffer->size,
+ .flags = buffer->create_flags,
+ .sharingMode = VK_SHARING_MODE_EXCLUSIVE,
+ .queueFamilyIndexCount = 0,
+ .pQueueFamilyIndices = NULL,
+ };
+ VkDeviceBufferMemoryRequirements info = {
+ .sType = VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS,
+ .pNext = NULL,
+ .pCreateInfo = &pCreateInfo,
+ };
+
+ device->dispatch_table.GetDeviceBufferMemoryRequirements(_device, &info, pMemoryRequirements);
+}
+
VKAPI_ATTR VkResult VKAPI_CALL
vk_common_BindBufferMemory(VkDevice _device,
VkBuffer buffer,