From: Caio Marcelo de Oliveira Filho Date: Wed, 14 Jul 2021 05:39:23 +0000 (-0700) Subject: vulkan/util: Add and use vk_multialloc_zalloc variants X-Git-Tag: upstream/22.3.5~20176 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=34aae6a1f2221bdd6ae812c11fafaaca10ca2419;p=platform%2Fupstream%2Fmesa.git vulkan/util: Add and use vk_multialloc_zalloc variants Reviewed-by: Jason Ekstrand Part-of: --- diff --git a/src/vulkan/util/vk_alloc.h b/src/vulkan/util/vk_alloc.h index da8b14c..56d3d77 100644 --- a/src/vulkan/util/vk_alloc.h +++ b/src/vulkan/util/vk_alloc.h @@ -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 diff --git a/src/vulkan/util/vk_object.c b/src/vulkan/util/vk_object.c index af2c72b..c6921ca 100644 --- a/src/vulkan/util/vk_object.c +++ b/src/vulkan/util/vk_object.c @@ -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;