mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 06:48:06 +02:00
vulkan/util: Add and use vk_multialloc_zalloc variants
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11890>
This commit is contained in:
parent
49a7c92793
commit
34aae6a1f2
2 changed files with 26 additions and 3 deletions
|
|
@ -242,4 +242,28 @@ vk_multialloc_alloc2(struct vk_multialloc *ma,
|
|||
return vk_multialloc_alloc(ma, alloc ? alloc : parent_alloc, scope);
|
||||
}
|
||||
|
||||
static ALWAYS_INLINE void *
|
||||
vk_multialloc_zalloc(struct vk_multialloc *ma,
|
||||
const VkAllocationCallbacks *alloc,
|
||||
VkSystemAllocationScope scope)
|
||||
{
|
||||
void *ptr = vk_multialloc_alloc(ma, alloc, scope);
|
||||
|
||||
if (ptr == NULL)
|
||||
return NULL;
|
||||
|
||||
memset(ptr, 0, ma->size);
|
||||
|
||||
return ptr;
|
||||
}
|
||||
|
||||
static ALWAYS_INLINE void *
|
||||
vk_multialloc_zalloc2(struct vk_multialloc *ma,
|
||||
const VkAllocationCallbacks *parent_alloc,
|
||||
const VkAllocationCallbacks *alloc,
|
||||
VkSystemAllocationScope scope)
|
||||
{
|
||||
return vk_multialloc_zalloc(ma, alloc ? alloc : parent_alloc, scope);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -113,12 +113,11 @@ vk_object_multizalloc(struct vk_device *device,
|
|||
const VkAllocationCallbacks *alloc,
|
||||
VkObjectType obj_type)
|
||||
{
|
||||
void *ptr = vk_multialloc_alloc2(ma, &device->alloc, alloc,
|
||||
VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);
|
||||
void *ptr = vk_multialloc_zalloc2(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;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue