Vulkan Memory Allocator

Drivers, SDKs and Libraries

The Vulkan Memory Allocator (VMA) library provides a simple and easy to integrate API to help you allocate memory for Vulkan buffer and image storage.

Currently at version 2.2.0, VMA has the following key features:

  • Easy allocation of buffer and image storage
  • Well documented single header file for the API
  • STL-compatible containers to ease integration
  • Support for custom memory pools
  • Support for defragmenting allocations
  • Support for a linear allocation strategy on custom pools
  • Detailed statistics, internal state dump in JSON format and a tool for its visualisation
  • Record and replay allocations, for in-depth analysis of memory usage, resource transitions, etc.
  • Support for non-coherent memory and flushing/invalidating allocations
  • Support for attempting to detect incorrect mapped memory usage

The library is battle tested by virtue of its integration into a majority of Vulkan game titles on PC, and also the Google Filament rendering engine and many other open source projects for Android, Linux, MacOS and Windows. VMA is MIT licensed.

The GitHub repository also includes a sample that shows how the library can be used.

Read the v2.2.0 README.md for more information and example code!

Resources