• Home
Name Date Size #Lines LOC

..--

README_files/03-May-2024-

README.mdD03-May-20242.7 KiB4330

Sample.jsonD03-May-20242.9 KiB102102

VmaDumpVis.pyD03-May-202411.6 KiB288231

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![Example output](README_files/ExampleOutput.png "Example output")
27
28## Legend
29
30* ![Free space](README_files/Legend_Bkg.png "Free space") Light gray without border - a space in Vulkan device memory block unused by any allocation.
31* ![Buffer 1](README_files/Legend_Buffer_1.png "Buffer 1") Buffer with usage containing INDIRECT_BUFFER, VERTEX_BUFFER, or INDEX_BUFFER.
32* ![Buffer 2](README_files/Legend_Buffer_2.png "Buffer 2") Buffer with usage containing STORAGE_BUFFER or STORAGE_TEXEL_BUFFER.
33* ![Buffer 3](README_files/Legend_Buffer_3.png "Buffer 3") Buffer with usage containing UNIFORM_BUFFER or UNIFORM_TEXEL_BUFFER.
34* ![Buffer 4](README_files/Legend_Buffer_4.png "Buffer 4") Other buffer.
35* ![Image 1](README_files/Legend_Image_1.png "Image 1") Image with OPTIMAL tiling and usage containing DEPTH_STENCIL_ATTACHMENT.
36* ![Image 2](README_files/Legend_Image_2.png "Image 2") Image with OPTIMAL tiling and usage containing INPUT_ATTACHMENT, TRANSIENT_ATTACHMENT, or COLOR_ATTACHMENT.
37* ![Image 3](README_files/Legend_Image_3.png "Image 3") Image with OPTIMAL tiling and usage containing SAMPLED.
38* ![Image 4](README_files/Legend_Image_4.png "Image 4") Other image with OPTIMAL tiling.
39* ![Image Linear](README_files/Legend_Image_Linear.png "Image Linear") Image with LINEAR tiling.
40* ![Image Unknown](README_files/Legend_Image_Unknown.png "Image Unknown") Image with tiling unknown to the allocator.
41* ![Unknown](README_files/Legend_Unknown.png "Unknown") Allocation of unknown type.
42* ![Details](README_files/Legend_Details.png "Details") Black bar - one or more allocations of any kind too small to be visualized as filled rectangles.
43