3 ms·
> Rust GUI is in a tough spot right now with critical dependencies under-staffed and lots of projects half implemented. Down the stack, low-level 3D accelerati
by jsheard 8mo ago
> Rust GUI is in a tough spot right now with critical dependencies under-staffed and lots of projects half implemented.
Down the stack, low-level 3D acceleration is in a rough spot too unfortunately. The canonical Rust Vulkan wrapper (Ash) hasn't cut a release for nearly two years, and even git main is far behind the latest spec updates.
- adastra22 8mo agoThe canonical Vulkan wrapper is wgpu.
- jsheard 8mo agoWGPU is a much higher level abstraction layer which itself depends on Ash for Vulkan FFI. https://github.com/gfx-rs/wgpu/blob/trunk/Cargo.toml#L264 https://github.com/gfx-rs/wgpu/blob/trunk/Cargo.toml#L264
- adastra22 8mo agoThank you I didn’t know that. I assume it is well maintained then? Are there outstanding issues?
- the__alchemist 8mo agoI am not convinced a thin FFI wrapper needs frequent updates, pending updates to the underlying API. What updates do you think it should have?
- jsheard 8mo agoThe underlying Vulkan API is updated constantly, the last spec update was about two weeks ago. Even if we only count the infrequent major milestone versions, Ash is still stuck at Vulkan 1.3, when Vulkan 1.4 launched in December of 2024.
- the__alchemist 8mo agoAh... that does make sense.
- hickelpickle 8mo agoDamn, I just dove back into a vulkan project I was grinding through to learn graphics programing, life and not having the time to chase graphic programming bugs led me to put it aside for a year and a half and these new models were able to help me squash my bug and grok things fully to dive back in, but I never even consider that the rust vulkan ecosystem was worse off. it was already an insane experience getting imgui, winit and ash to play nice together, after bouncing back and forth between WGPU, I assume vulkan via ash was the safer bet. IIRC there is another raw vulkan library that just generated bindings as well and stayed up to date but that comes with its own issues.
- the__alchemist 8mo agoVulkano? I remember that! Looks like it was updated last week, but I don't know if it's current with the Vulkan API, nor how it generally compares to Ash. WGPU + Winit + EGUI + EGUI component libs is its own joy of compatibility, but anecdotally they have been updating in reasonable sync. things can get out of hand if you wait too long between updates though!
- deleted 8mo ago[deleted]
- deleted 8mo ago[deleted]
- jsheard 8mo agoVulkano is a somewhat higher level library which aims to be safe and idiomatic. It looks like it generates its own Vulkan bindings directly from the vk.xml definitions, but it also depends on Ash, and this comment suggests that both generators need to be kept in sync so they're effectively beholden to Ash's release cadence anyway. https://github.com/vulkano-rs/vulkano/blob/master/Cargo.toml#L43 https://github.com/vulkano-rs/vulkano/blob/master/Cargo.toml... Maybe that's so they can interop with other crates which use Ash's types?
- delta_p_delta_x 8mo agovk.xml[1] is the canonical Vulkan specification; this is updated essentially weekly. The C++ equivalent, Vulkan-Hpp[2], follows extremely closely behind. Plus, ash isn't just an FFI wrapper; it does quite a bit of RAII-esque state and function pointer management that is generally required for Vulkan. [1]: https://github.com/KhronosGroup/Vulkan-Docs/blob/main/xml/vk.xml https://github.com/KhronosGroup/Vulkan-Docs/blob/main/xml/vk... [2]: https://github.com/KhronosGroup/Vulkan-Hpp/ https://github.com/KhronosGroup/Vulkan-Hpp/