Mesa (main): vulkan/util: Add and use vk_multialloc_zalloc variants
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Thu Jul 15 21:53:02 UTC 2021
Module: Mesa
Branch: main
Commit: 34aae6a1f2221bdd6ae812c11fafaaca10ca2419
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=34aae6a1f2221bdd6ae812c11fafaaca10ca2419
Author: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>
Date: Tue Jul 13 22:39:23 2021 -0700
vulkan/util: Add and use vk_multialloc_zalloc variants
Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11890>
---
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;
More information about the mesa-commit
mailing list