blurrypiano / littleVulkanEngine

Code repo for video tutorial series teaching Vulkan and computer graphics
MIT License
829 stars 147 forks source link

Consider using `VmaAllocator` #2

Open zpxp opened 3 years ago

zpxp commented 3 years ago

While it is good to know how to natively allocate buffers in vulkan, IMO it would be good to also teach vulkan with a memory allocator, such as vulkan memory allocator, as any real world vulkan app would almost certainly use a mem allocator.

blurrypiano commented 3 years ago

Thanks for the suggestion! Vma is definitely on my radar but this is a good reminder that I should to look into more and figure out when is a good time to fit it into the tutorial series sooner rather than later.

@zpxp - have you used VMA before? From my current understanding, it's supposed to be pretty easy to integrate into existing projects. Would you say that's correct?

zpxp commented 3 years ago

I would say its fairly easy to integrate IF you already have helper functions to allocate buffers and images as you will only have to modify that particular code. If you allocate buffers inline in 20 different places in your app, then it will become a bit more tedious.

If you have a device class that stores your VkDevice and related info, you can put the VmaAllocator on that class as the allocators and devices have a 1 to 1 relationship.

HugoPeters1024 commented 3 years ago

Can confirm. I decided to deviate from the youtube videos by integrating the VMA allocator because I wanted to learn about it and it took me less than an hour from googling vma to reworking it in the project.