mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-23 09:00:10 +01:00
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:
parent
2b19b7a165
commit
22478bb0e4
2 changed files with 47 additions and 0 deletions
|
|
@ -91,6 +91,39 @@ vk_object_zalloc(struct vk_device *device,
|
||||||
return ptr;
|
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
|
void
|
||||||
vk_object_free(struct vk_device *device,
|
vk_object_free(struct vk_device *device,
|
||||||
const VkAllocationCallbacks *alloc,
|
const VkAllocationCallbacks *alloc,
|
||||||
|
|
|
||||||
|
|
@ -120,6 +120,20 @@ vk_object_zalloc(struct vk_device *device,
|
||||||
size_t size,
|
size_t size,
|
||||||
VkObjectType vk_obj_type);
|
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
|
void
|
||||||
vk_object_free(struct vk_device *device,
|
vk_object_free(struct vk_device *device,
|
||||||
const VkAllocationCallbacks *alloc,
|
const VkAllocationCallbacks *alloc,
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue