Remix.run Logo
the__alchemist 2 hours ago

I 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 2 hours ago | parent | next [-]

The 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.

hickelpickle 2 hours ago | parent | next [-]

Damn, 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 2 hours ago | parent [-]

Vulkano? 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!

jsheard an hour ago | parent | next [-]

Vulkano 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...

Maybe that's so they can interop with other crates which use Ash's types?

an hour ago | parent | prev | next [-]
[deleted]
an hour ago | parent | prev [-]
[deleted]
the__alchemist 2 hours ago | parent | prev [-]

Ah... that does make sense.

delta_p_delta_x an hour ago | parent | prev [-]

vk.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...

[2]: https://github.com/KhronosGroup/Vulkan-Hpp/