Are there similar smaller alternatives for VMA?
As for the motivation: my 3D API wrapper around OpenGL, D3D11, Metal and WebGPU clocks in at 15kloc for all 3D backends, I'm hesitant to add a Vulkan backend exactly for problems like doing my own memory management for Vulkan resources. If I would integrate VMA, this would more than double the line count just for the memory management of a single 3D backend which simply doesn't seem "right". See: https://github.com/floooh/sokol/blob/master/sokol_gfx.h
[1] - https://github.com/GPUOpen-LibrariesAndSDKs/V-EZ
[2] - https://github.com/GPUOpen-LibrariesAndSDKs/V-EZ/issues/73
Ironically WebGPU is what Vulkan should have been in first place, from my point of view.
Which are? (I'm genuinely interested)
Can we please just make Direct3D the standard and get the open source community to support it instead of Khronos khruft?
I have my own slightly anemic memory manager code that implements a basic scheme with no frills, avoids pitfalls and fits into about 500 lines of code. The only thing I really might want to improve is the some of the free lost handling. The rest shoukd be good for quite a while.
One idea I'm playing with is to provide callback hooks so that resource allocation and management can be delegated to the API user (so they can for instance integrate VMA themselves), and only provide a rudimentary default solution (which probably would be enough for many simple use cases).
1. The usual recommended books for beginners, although good miss what I need, yes I love building ray-tracers and rasterizers but I can finish the book and not have the slightest idea about how a GPU actually works
2. Books like H&P although excellent, treat GPUs as an after-thought in 1 extra chapter, and even the content is like 5-10 years behind.
3. The GPU gems series are too advanced for me, I get lost pretty quickly and quit in frustration
4. Nvidia, AMD resources are 50% advertising, 50% hype and proprietary jargon.
I suppose what I want does not exist, I want a guide that starting from a somewhat basic level (let's say assuming the reader took an undergraduate course in comp architecture) methodically explains how the GPU evolved into a complete separate type of computing architecture, how it works in the nitty gritty details, and how it is been used in different applications (graphics,ML,data processing, etc)
* A trip through the Graphics Pipeline[1] is slightly dated (10 years old) but still very relevant.
* If you're interested in compute shaders specifically, I've put together "compute shader 101"[2].
* Alyssa Rosenzweig's posts[3] on reverse engineering GPUs casts a lot of light on how they work at a low level. It helps to have a big-picture understanding first.
I think there is demand for a good book on this topic.
[1]: https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-...
https://rastergrid.com/blog/gpu-tech/2021/07/gpu-architectur...
There isn't a lot of actual under-the-hood information though, because GPUs are closed IPs. So the information needs to be pieced together from the occasional conference talks, performance optimization advice from GPU vendors and what enthusiasts reverse engineer by poking GPUs through the 3D APIs.
General-Purpose Graphics Processor Architectures (Tor M. Aamodt)
https://skos.ii.uni.wroc.pl/pluginfile.php/28568/mod_resourc...
> 4. Nvidia, AMD resources are 50% advertising, 50% hype and proprietary jargon.
I found the Nvidia CUDA C Programming Guide very helpful...
Loading it just now, I'm seeing what you see.