Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mesa
Path: blob/21.2-virgl/src/vulkan/util/vk_alloc.c
7141 views
1
/*
2
* Copyright 2021 Google LLC
3
* SPDX-License-Identifier: MIT
4
*/
5
6
#include "vk_alloc.h"
7
8
#include <stdlib.h>
9
10
#if __STDC_VERSION__ >= 201112L && !defined(_MSC_VER)
11
#include <stddef.h>
12
#define MAX_ALIGN alignof(max_align_t)
13
#else
14
/* long double might be 128-bit, but our callers do not need that anyway(?) */
15
#include <stdint.h>
16
#define MAX_ALIGN alignof(uint64_t)
17
#endif
18
19
static VKAPI_ATTR void * VKAPI_CALL
20
vk_default_alloc(void *pUserData,
21
size_t size,
22
size_t alignment,
23
VkSystemAllocationScope allocationScope)
24
{
25
assert(MAX_ALIGN % alignment == 0);
26
return malloc(size);
27
}
28
29
static VKAPI_ATTR void * VKAPI_CALL
30
vk_default_realloc(void *pUserData,
31
void *pOriginal,
32
size_t size,
33
size_t alignment,
34
VkSystemAllocationScope allocationScope)
35
{
36
assert(MAX_ALIGN % alignment == 0);
37
return realloc(pOriginal, size);
38
}
39
40
static VKAPI_ATTR void VKAPI_CALL
41
vk_default_free(void *pUserData, void *pMemory)
42
{
43
free(pMemory);
44
}
45
46
const VkAllocationCallbacks *
47
vk_default_allocator(void)
48
{
49
static const VkAllocationCallbacks allocator = {
50
.pfnAllocation = vk_default_alloc,
51
.pfnReallocation = vk_default_realloc,
52
.pfnFree = vk_default_free,
53
};
54
return &allocator;
55
}
56
57