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 who is vulkan made by/for? is it architected by like the chip designers without input from users?
@hipsterelectron it's an industry standards body of hardware and software vendors. Vulkan started off as a proprietary low level hardware API called Mantle which AMD donated to the Khronos group. This did meet a need at, because specialized game engines can make use of APIs like this to minimize driver overhead among other things. Before Vulkan you could only really do that with proprietary game console rendering APIs.
@aeva SYCL was like this too i think
@aeva very hopeful for rustsycl
@hipsterelectron I'm not familiar with SYCL. Looks like OpenCL but with C++17 instead of glsl?
@aeva yep!!!! super fucking cool and i think it gets much closer to the right way to do parallel computation. LLNL's RAJA (super fucking cool parallelism framework in c++, i wanna do it in rust but you actually can't express a lot of it in rust bc c++ has a better type system in several ways) uses it as a backend
GitHub - LLNL/RAJA: RAJA Performance Portability Layer (C++)

RAJA Performance Portability Layer (C++). Contribute to LLNL/RAJA development by creating an account on GitHub.

GitHub
@aeva rly rly rly rly good deconstruction of the limitations of the rust type system vs c++ here from the eng who was gonna keynote this at rustconf before getting sidelined by a known bad actor https://mastodon.social/@tedmielczarek/114101345156483840
@hipsterelectron fascinating read! I'm sure this would have been a fantastic keynote, assuming you're allowed to say positive things about C++ at rustconf
@aeva yes!!!