Has anybody been able to build a statically linked binary that shows a Vulkan surface? I’ve put some context around this problem in the video. I understand that the vulkan driver has to be loaded dynamically - so it’s more of a question whether a statically built app can reliably load and talk with it. I think it should be possible but haven’t actually seen anyone make it work. I’m aware of “static-window9” by Andrew Kelley but sadly it doesn’t work any more (at least on my Gentoo machine T_T).
(I’m also aware of AppImages but I don’t think they’re the “proper” solution to this problem - more like a temporary bandaid - better than Docker but still far from perfect)
I have no experience with this, but I figured a Rust library might have tried to solve it (static linking is very much the norm here) and I found that
ash
can statically link the “Vulkan loader”. I don’t know, what that actually means, for example whether it would still loadlibxcb
at runtime. Might be worth looking into what they do…See the “Optional linking” section here for their description: https://crates.io/crates/ash#optional-linking
I’ll also add that I’m aware of glibc’s stance on dynamic linking from static binaries. I don’t buy the whole NSS argument. It’s easily solvable by a basic request/response protocol through some local socket. IMO that argument is just a cheap excuse to justify status quo.