if you think about it, vulkan logical device implies the existence of vulkan illogical device

I'm slowly working through the vulkan spec writing a compute-only vulkan program from scratch that doesn't render anything, and it's going pretty well because the spec is really well written and I already know more or less exactly what I want to do anyway, but I just want to say just how silly (fun) it feels to write a program like this because you get to just skip over large swaths of the API.

Like, I'm working from the spec because the tutorials all make it more complicated.

also the tutorials I reviewed all did the annoying thing where the tutorial squirrels away the stuff you're trying to learn or reference into abstractions that only serve the needs of the tutorial writer, which given my goal is very specifically to *not draw anything*, there's really not much of a point to any of them lol. I'm really not the intended audience here though :3

I think it's cute that practically every vulkan command has one or more optional args to let you enter Hard Mode

(sorry for the double post, I added this to the wrong thread)

ok even with just the compute-only subset vulkan is a slog D:

I wonder how many people have actually managed to knuckle down and write a complete, useful vulkan program from scratch (no copy pasting from tutorials and stack overflow, no offloading significant parts to 3rd party libraries like VMA)

To think if I power through and get this thing working I could potentially be like the 20th person to bother

@aeva hmm how useful is "useful" :') but to be honest I think the hardest part of vulkan is actually the same as opengl, it's knowing which set of extensions you're supposed to use because they make things much easier, and which extensions you're not supposed to use because they're pointless or not practical on the hardware you care about.
@dotstdy re "useful", whatever comes past the "could a depressed person do this" joke, I guess? I figure there's plenty of people out there who have probably managed to power through a tutorial and get the triangle one screen, and then just... quit. That's not "useful", right? That's just sad, because that means the experience was an ordeal, not a useful learning exercise. If learning how to draw a triangle is enough to crush someone's dreams, that's not "useful", right?
@dotstdy However, what I want to write is more or less in the same ballpark of complexity as drawing the victory triangle, because it's a relatively simple gpupu task, but if I get it working (and the experiment is successful), then it will be "useful" because the result will be a program that I will actually use for something (making music), and will inform decisions made on a bigger project (synth engine for a game). If I stop short of that, it will not have been "useful".
@dotstdy I guess what I'm trying to say is I'm not setting a goal post of some sufficiently Macho amount of program complexity that one has to cross to be a Vulkaneer, because that would be stupid and shitty. Rather, I'm wondering how many people have managed to raw dog vulkan and not come away with the conclusion that maybe it would be best only write this if someone's paying, or worse, that whatever it is they wanted to do is simply just beyond their capabilities
@aeva oh yeha for sure. especially the last point. i have indeed 'raw dogged vulkan' but not because i think the api is good to use, more because it's the only usable api on Linux (well arguably the best option on linux is actually dx11 via dxvk but yeah). it certainly has its attractions, but a lot of things (especially stuff like allocation) end up being entirely busywork for no significant gain - even at AAA scale.
@dotstdy @aeva we use it through wgpu_native. a treat