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 this kind of thing was a big motivation for me making Gigi. So we sit and take a month to get to the first triangle in vulkan, metal, dx12, etc.
If we did it right we end up with the same code everyone else has.
There is so much boilerplate.
Literally saying "run these shaders with these inputs and outputs" is enough for a person knowledgeable about any platform to make it happen.
There is no reason for all the hoop jumping other than a knee jerk reaction to devs calling drivers slow.
@aeva when people point at an api or engine interface and ask "why is this such a pain in the butt?" And the response is it has to be, I want people to be able to point at gigi and say "No, look. This other interface is just as descriptive. It can generate all the code you want me to write by hand, and writes it the way I want it to be and you want it to be, but i don't have to write a novel to express a sentence".
Besides being useful, I hope gigi starts a conversation about complexity.
@demofox so, if I'm following this, I can use gigi to describe a compute shader in a reasonable way, and use it to generate the vulkan code for all the shader management stuff?
@aeva it doesn't have vulkan code generation yet unfortunately. It's basically just me working on it so it's slow going development.
Publicly only dx12 right now. A couple more weeks (estimated) until webgpu/javascript (browser and node).
Internally at EA we also have code generation for UE5, frostbite, and a light weight research engine.
UE5 could be public but needs a little more work til it's ready for that.
Vulkan is next on the list after, I'd say, since it opens up so many more platforms.
@aeva but yeah, that's the idea!
You can string a bunch of nodes together in a node graph, where each node is a compute shader, ray gen shader, draw call, copy resource etc.
You can see it running in the viewer where you iterate (hot reload), profile, and debug (view any resource at any stage).
When you are done, you code generate and it gives you the cpu side code, and the shaders, with instructions for hooking it up.
It makes a modular thing and tries to minimize effort in connecting it up.
@demofox if only we had GPU drivers for Plan9.
@Flux @demofox you should simply add GPU drivers to Plan9!
@aeva @demofox I've worked too close to GPUs to think of this as a feasible single-person project.
@Flux @aeva what is plan9? Google isn't helping much
Plan 9 from Bell Labs - Wikipedia

@dougbinks @demofox @Flux @aeva it’s the future!
@photex @dougbinks @demofox @Flux @aeva and it always will be
@photex @jon_valdes @dougbinks @Flux @aeva i took your comments more seriously and was intrigued 😂
@demofox there's a lot of goodness in a plan9 approach to problems. Worth booting it on some old hardware and getting familiar with it, if only to realize the whole world doesn't need to be windows and Linux.