X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Futil%2Fvk_alloc.h;h=2915021826903391b777f9f061893f0840b3e64d;hb=65ea559465df527d8a2998380c7eb2554780a2ba;hp=a8e21cade11751f2867b9671a3a662b44486b2f2;hpb=0cfd428aefe13441e93cc6f57d70f0b282ad2b21;p=mesa.git diff --git a/src/util/vk_alloc.h b/src/util/vk_alloc.h index a8e21cade11..29150218269 100644 --- a/src/util/vk_alloc.h +++ b/src/util/vk_alloc.h @@ -25,6 +25,7 @@ /* common allocation inlines for vulkan drivers */ +#include #include static inline void * @@ -46,6 +47,9 @@ vk_realloc(const VkAllocationCallbacks *alloc, static inline void vk_free(const VkAllocationCallbacks *alloc, void *data) { + if (data == NULL) + return; + alloc->pfnFree(alloc->pUserData, data); } @@ -61,6 +65,21 @@ vk_alloc2(const VkAllocationCallbacks *parent_alloc, return vk_alloc(parent_alloc, size, align, scope); } +static inline void * +vk_zalloc2(const VkAllocationCallbacks *parent_alloc, + const VkAllocationCallbacks *alloc, + size_t size, size_t align, + VkSystemAllocationScope scope) +{ + void *mem = vk_alloc2(parent_alloc, alloc, size, align, scope); + if (mem == NULL) + return NULL; + + memset(mem, 0, size); + + return mem; +} + static inline void vk_free2(const VkAllocationCallbacks *parent_alloc, const VkAllocationCallbacks *alloc,