GitHub - GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator: Straightforward To Integrate Vulkan Memory Allocation Library
Simple to combine Vulkan memory allocation library. It requires a lot of boilerplate code, identical to everything else in Vulkan, as a result of it is a low-degree and high-performance API. There is further stage of indirection: VkDeviceMemory is allocated individually from creating VkBuffer/VkImage and so they should be bound collectively. Driver have to be queried for supported memory heaps and memory varieties. Different GPU distributors present different types of it. It is suggested to allocate bigger chunks of memory and assign components of them to particular assets, as there's a restrict on most variety of memory blocks that may be allotted. 1. Functions that help to choose appropriate and optimum memory sort based mostly on intended utilization of the memory. Required or preferred traits of the memory are expressed utilizing higher-degree description comparing to Vulkan flags. Library retains track of allocated memory blocks, used and unused ranges inside them, finds finest matching unused ranges for brand new allocations, respects all the principles of alignment and buffer/picture granularity.
3. Features that can create a picture/buffer, allocate memory for it and bind them together - multi function name. Properly-documented - description of all capabilities and structures provided, along with chapters that contain normal description and instance code. Thread-safety: Library is designed to be used in multithreaded code. Access to a single device memory block referred by different buffers and textures (binding, mapping) is synchronized internally. Memory mapping is reference-counted.
Simple to combine Vulkan memory allocation library. It requires a lot of boilerplate code, identical to everything else in Vulkan, as a result of it is a low-degree and high-performance API. There is further stage of indirection: VkDeviceMemory is allocated individually from creating VkBuffer/VkImage and so they should be bound collectively. Driver have to be queried for supported memory heaps and memory varieties. Different GPU distributors present different types of it. It is suggested to allocate bigger chunks of memory and assign components of them to particular assets, as there's a restrict on most variety of memory blocks that may be allotted. 1. Functions that help to choose appropriate and optimum memory sort based mostly on intended utilization of the memory. Required or preferred traits of the memory are expressed utilizing higher-degree description comparing to Vulkan flags. Library retains track of allocated memory blocks, used and unused ranges inside them, finds finest matching unused ranges for brand new allocations, respects all the principles of alignment and buffer/picture granularity.
3. Features that can create a picture/buffer, allocate memory for it and bind them together - multi function name. Properly-documented - description of all capabilities and structures provided, along with chapters that contain normal description and instance code. Thread-safety: Library is designed to be used in multithreaded code. Access to a single device memory block referred by different buffers and textures (binding, mapping) is synchronized internally. Memory mapping is reference-counted.