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