Mesa (main): radv: implement vkGetDeviceBufferMemoryRequirementsKHR()
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Mon Oct 11 09:14:45 UTC 2021
Module: Mesa
Branch: main
Commit: 863fb8852db35390da614e168830d4e87b97e6fe
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=863fb8852db35390da614e168830d4e87b97e6fe
Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date: Tue Sep 21 08:57:05 2021 +0200
radv: implement vkGetDeviceBufferMemoryRequirementsKHR()
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 | 36 ++++++++++++++++++++++++++++--------
1 file changed, 28 insertions(+), 8 deletions(-)
diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c
index 362445be5aa..b06a4cf9503 100644
--- a/src/amd/vulkan/radv_device.c
+++ b/src/amd/vulkan/radv_device.c
@@ -5365,23 +5365,22 @@ radv_InvalidateMappedMemoryRanges(VkDevice _device, uint32_t memoryRangeCount,
return VK_SUCCESS;
}
-void
-radv_GetBufferMemoryRequirements2(VkDevice _device, const VkBufferMemoryRequirementsInfo2 *pInfo,
- VkMemoryRequirements2 *pMemoryRequirements)
+static void
+radv_get_buffer_memory_requirements(struct radv_device *device,
+ VkDeviceSize size,
+ VkBufferCreateFlags flags,
+ VkMemoryRequirements2 *pMemoryRequirements)
{
- RADV_FROM_HANDLE(radv_device, device, _device);
- RADV_FROM_HANDLE(radv_buffer, buffer, pInfo->buffer);
-
pMemoryRequirements->memoryRequirements.memoryTypeBits =
(1u << device->physical_device->memory_properties.memoryTypeCount) - 1;
- if (buffer->flags & VK_BUFFER_CREATE_SPARSE_BINDING_BIT)
+ if (flags & VK_BUFFER_CREATE_SPARSE_BINDING_BIT)
pMemoryRequirements->memoryRequirements.alignment = 4096;
else
pMemoryRequirements->memoryRequirements.alignment = 16;
pMemoryRequirements->memoryRequirements.size =
- align64(buffer->size, pMemoryRequirements->memoryRequirements.alignment);
+ align64(size, pMemoryRequirements->memoryRequirements.alignment);
vk_foreach_struct(ext, pMemoryRequirements->pNext)
{
@@ -5398,6 +5397,27 @@ radv_GetBufferMemoryRequirements2(VkDevice _device, const VkBufferMemoryRequirem
}
}
+void
+radv_GetBufferMemoryRequirements2(VkDevice _device, const VkBufferMemoryRequirementsInfo2 *pInfo,
+ VkMemoryRequirements2 *pMemoryRequirements)
+{
+ RADV_FROM_HANDLE(radv_device, device, _device);
+ RADV_FROM_HANDLE(radv_buffer, buffer, pInfo->buffer);
+
+ radv_get_buffer_memory_requirements(device, buffer->size, buffer->flags, pMemoryRequirements);
+}
+
+void
+radv_GetDeviceBufferMemoryRequirementsKHR(VkDevice _device,
+ const VkDeviceBufferMemoryRequirementsKHR* pInfo,
+ VkMemoryRequirements2 *pMemoryRequirements)
+{
+ RADV_FROM_HANDLE(radv_device, device, _device);
+
+ radv_get_buffer_memory_requirements(device, pInfo->pCreateInfo->size, pInfo->pCreateInfo->flags,
+ pMemoryRequirements);
+}
+
void
radv_GetImageMemoryRequirements2(VkDevice _device, const VkImageMemoryRequirementsInfo2 *pInfo,
VkMemoryRequirements2 *pMemoryRequirements)
More information about the mesa-commit
mailing list