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.1.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
  • Record and replay allocations, for in-depth analysis of memory usage, resource transitions, etc
  • Support for non-coherent memory and flushing allocations
  • Supporting 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 for Android, Linux, macOS and Windows. VMA and is MIT licensed with just a single Apache-licensed 3rd party dependency (MathFu).

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

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

Resources