The type of
// Provided by VK_VERSION_1_0 typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)( void* pUserData, void* pOriginal, size_t size, size_t alignment, VkSystemAllocationScope allocationScope);
pUserDatais the value specified for VkAllocationCallbacks::
pUserDatain the allocator specified by the application.
pOriginalmust be either
NULLor a pointer previously returned by
pfnAllocationof a compatible allocator.
sizeis the size in bytes of the requested allocation.
alignmentis the requested alignment of the allocation in bytes and must be a power of two.
allocationScopeis a VkSystemAllocationScope value specifying the allocation scope of the lifetime of the allocation, as described here.
If the reallocation was successful,
pfnReallocation must return an
allocation with enough space for
size bytes, and the contents of the
original allocation from bytes zero to min(original size, new size) -
1 must be preserved in the returned allocation.
size is larger than the old size, the contents of the additional
space are undefined.
If satisfying these requirements involves creating a new allocation, then
the old allocation should be freed.
pfnReallocation must behave
equivalently to a call to PFN_vkAllocationFunction with the same
parameter values (without
size is zero, then
pfnReallocation must behave equivalently
to a call to PFN_vkFreeFunction with the same
parameter value, and
pMemory equal to
pOriginal is non-
NULL, the implementation must ensure that
alignment is equal to the
alignment used to originally allocate
If this function fails and
pOriginal is non-
NULL the application
must not free the old allocation.
pfnReallocation must follow the same
rules for return values as
For more information, see the Vulkan Specification
This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.