vulkan: Add a vk_object_multialloc helper

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10123>
This commit is contained in:
Jason Ekstrand
2021-04-08 16:46:04 -05:00
committed by Marge Bot
parent 2b19b7a165
commit 22478bb0e4
2 changed files with 47 additions and 0 deletions

View File

@@ -91,6 +91,39 @@ vk_object_zalloc(struct vk_device *device,
return ptr;
}
void *
vk_object_multialloc(struct vk_device *device,
struct vk_multialloc *ma,
const VkAllocationCallbacks *alloc,
VkObjectType obj_type)
{
void *ptr = vk_multialloc_alloc2(ma, &device->alloc, alloc,
VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);
if (ptr == NULL)
return NULL;
vk_object_base_init(device, (struct vk_object_base *)ptr, obj_type);
return ptr;
}
void *
vk_object_multizalloc(struct vk_device *device,
struct vk_multialloc *ma,
const VkAllocationCallbacks *alloc,
VkObjectType obj_type)
{
void *ptr = vk_multialloc_alloc2(ma, &device->alloc, alloc,
VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);
if (ptr == NULL)
return NULL;
memset(ptr, 0, ma->size);
vk_object_base_init(device, (struct vk_object_base *)ptr, obj_type);
return ptr;
}
void
vk_object_free(struct vk_device *device,
const VkAllocationCallbacks *alloc,

View File

@@ -120,6 +120,20 @@ vk_object_zalloc(struct vk_device *device,
size_t size,
VkObjectType vk_obj_type);
struct vk_multialloc;
void *
vk_object_multialloc(struct vk_device *device,
struct vk_multialloc *ma,
const VkAllocationCallbacks *alloc,
VkObjectType vk_obj_type);
void *
vk_object_multizalloc(struct vk_device *device,
struct vk_multialloc *ma,
const VkAllocationCallbacks *alloc,
VkObjectType vk_obj_type);
void
vk_object_free(struct vk_device *device,
const VkAllocationCallbacks *alloc,