util: Add a mapping from VkFormat to PIPE_FORMAT.
[mesa.git] / src / vulkan / util / vk_alloc.h
index 2915021826903391b777f9f061893f0840b3e64d..2e807a96d9e6c7c43c96bd72db5c562083343d3a 100644 (file)
@@ -36,6 +36,20 @@ vk_alloc(const VkAllocationCallbacks *alloc,
    return alloc->pfnAllocation(alloc->pUserData, size, align, scope);
 }
 
+static inline void *
+vk_zalloc(const VkAllocationCallbacks *alloc,
+          size_t size, size_t align,
+          VkSystemAllocationScope scope)
+{
+   void *mem = vk_alloc(alloc, size, align, scope);
+   if (mem == NULL)
+      return NULL;
+
+   memset(mem, 0, size);
+
+   return mem;
+}
+
 static inline void *
 vk_realloc(const VkAllocationCallbacks *alloc,
            void *ptr, size_t size, size_t align,
@@ -53,6 +67,23 @@ vk_free(const VkAllocationCallbacks *alloc, void *data)
    alloc->pfnFree(alloc->pUserData, data);
 }
 
+static inline char *
+vk_strdup(const VkAllocationCallbacks *alloc, const char *s,
+          VkSystemAllocationScope scope)
+{
+   if (s == NULL)
+      return NULL;
+
+   size_t size = strlen(s) + 1;
+   char *copy = vk_alloc(alloc, size, 1, scope);
+   if (copy == NULL)
+      return NULL;
+
+   memcpy(copy, s, size);
+
+   return copy;
+}
+
 static inline void *
 vk_alloc2(const VkAllocationCallbacks *parent_alloc,
           const VkAllocationCallbacks *alloc,