From 34aae6a1f2221bdd6ae812c11fafaaca10ca2419 Mon Sep 17 00:00:00 2001 From: Caio Marcelo de Oliveira Filho Date: Tue, 13 Jul 2021 22:39:23 -0700 Subject: [PATCH] vulkan/util: Add and use vk_multialloc_zalloc variants Reviewed-by: Jason Ekstrand Part-of: --- src/vulkan/util/vk_alloc.h | 24 ++++++++++++++++++++++++ src/vulkan/util/vk_object.c | 5 ++--- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/src/vulkan/util/vk_alloc.h b/src/vulkan/util/vk_alloc.h index da8b14cdcf1..56d3d7744fb 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 af2c72ba95d..c6921ca5e62 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;