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
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;