v3dv: implement vkGetDeviceBufferMemoryRequirementsKHR

Added with VK_KHR_maintenance4.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18246>
This commit is contained in:
Iago Toral Quiroga
2022-08-25 09:56:53 +02:00
committed by Marge Bot
parent 5d5b9bbad9
commit 48e8564235
+23 -10
View File
@@ -2562,6 +2562,16 @@ v3dv_BindImageMemory2(VkDevice _device,
return VK_SUCCESS;
}
static void
buffer_init(struct v3dv_device *device,
const VkBufferCreateInfo *pCreateInfo,
struct v3dv_buffer *buffer)
{
buffer->size = pCreateInfo->size;
buffer->usage = pCreateInfo->usage;
buffer->alignment = V3D_NON_COHERENT_ATOM_SIZE;
}
static void
get_buffer_memory_requirements(struct v3dv_buffer *buffer,
VkMemoryRequirements2 *pMemoryRequirements)
@@ -2597,6 +2607,19 @@ v3dv_GetBufferMemoryRequirements2(VkDevice device,
get_buffer_memory_requirements(buffer, pMemoryRequirements);
}
VKAPI_ATTR void VKAPI_CALL
v3dv_GetDeviceBufferMemoryRequirementsKHR(
VkDevice _device,
const VkDeviceBufferMemoryRequirements *pInfo,
VkMemoryRequirements2 *pMemoryRequirements)
{
V3DV_FROM_HANDLE(v3dv_device, device, _device);
struct v3dv_buffer buffer = { 0 };
buffer_init(device, pInfo->pCreateInfo, &buffer);
get_buffer_memory_requirements(&buffer, pMemoryRequirements);
}
static void
bind_buffer_memory(const VkBindBufferMemoryInfo *info)
{
@@ -2628,16 +2651,6 @@ v3dv_BindBufferMemory2(VkDevice device,
return VK_SUCCESS;
}
static void
buffer_init(struct v3dv_device *device,
const VkBufferCreateInfo *pCreateInfo,
struct v3dv_buffer *buffer)
{
buffer->size = pCreateInfo->size;
buffer->usage = pCreateInfo->usage;
buffer->alignment = V3D_NON_COHERENT_ATOM_SIZE;
}
VKAPI_ATTR VkResult VKAPI_CALL
v3dv_CreateBuffer(VkDevice _device,
const VkBufferCreateInfo *pCreateInfo,