(no title)
wudangmonk | 1 year ago
They all introduce another layer of abstraction on top of Vulkan even before giving you the simple case without it. Its always use vk-bootstrap, volk, vma or someother library.
Is there a single resource anywhere that gives an example of doing the memory management manually because I havent found one, it seems like its either use vma or go figure out the spec are the only choices you are given. Is it too much to ask to just get the most basic example without having to add any libraries other than the Vulkan sdk itself?.
harrison_clarke|1 year ago
in most games, there are about 3 "lifetimes": - permanent/startup - per-level - per-frame
and they're nested. so, you can use a single stack allocator for all of them. at the end of the frame/level, pop back to where it started
there are more complicated patterns, but this one will get you pretty far. you can use it on the CPU and the GPU
greathones|1 year ago
izacus|1 year ago
tombert|1 year ago
andrewmcwatters|1 year ago
When you're corroborating some random person's third-party instructions on initializing Vulkan and comparing those notes to what's done in Khronos Group repositories and reading the Vulkan 1.3 spec and realizing you have to read the specification out-of-order to get anything done, it's clear that they failed.
They failed. It's bad work by any other standard. But you'll do the work once and forget about it for the most part, so professionals don't complain too much.
Read my other comment in this thread for a portion of source code annotated with the specification chapters and sections.
It's a generic implementation that can be used with SDL and others.
Edit: As of the time of writing, the standard approach is to use VMA and Volk, both of which are included with the official Vulkan SDK. That should tell you enough about the state of the art.