README.md
1# VMA Dump Vis
2
3Vulkan Memory Allocator Dump Visualization. It is an auxiliary tool that can visualize internal state of [Vulkan Memory Allocator](../../README.md) library on a picture. It is a Python script that must be launched from command line with appropriate parameters.
4
5## Requirements
6
7- Python 3 installed
8- [Pillow](http://python-pillow.org/) - Python Imaging Library (Fork) installed
9
10## Usage
11
12```
13python VmaDumpVis.py -o OUTPUT_FILE INPUT_FILE
14```
15
16* `INPUT_FILE` - path to source file to be read, containing dump of internal state of the VMA library in JSON format (encoding: UTF-8), generated using `vmaBuildStatsString()` function.
17* `OUTPUT_FILE` - path to destination file to be written that will contain generated image. Image format is automatically recognized based on file extension. List of supported formats can be found [here](http://pillow.readthedocs.io/en/latest/handbook/image-file-formats.html) and includes: BMP, GIF, JPEG, PNG, TGA.
18
19You can also use typical options:
20
21* `-h` - to see help on command line syntax
22* `-v` - to see program version number
23
24## Example output
25
26
27
28## Legend
29
30*  Light gray without border - a space in Vulkan device memory block unused by any allocation.
31*  Buffer with usage containing INDIRECT_BUFFER, VERTEX_BUFFER, or INDEX_BUFFER.
32*  Buffer with usage containing STORAGE_BUFFER or STORAGE_TEXEL_BUFFER.
33*  Buffer with usage containing UNIFORM_BUFFER or UNIFORM_TEXEL_BUFFER.
34*  Other buffer.
35*  Image with OPTIMAL tiling and usage containing DEPTH_STENCIL_ATTACHMENT.
36*  Image with OPTIMAL tiling and usage containing INPUT_ATTACHMENT, TRANSIENT_ATTACHMENT, or COLOR_ATTACHMENT.
37*  Image with OPTIMAL tiling and usage containing SAMPLED.
38*  Other image with OPTIMAL tiling.
39*  Image with LINEAR tiling.
40*  Image with tiling unknown to the allocator.
41*  Allocation of unknown type.
42*  Black bar - one or more allocations of any kind too small to be visualized as filled rectangles.
43