Vulkan 1.4 support
First, thanks for this project, you are doing a great job!
I keep an eye out for 1.4 support for a while. I know there is a branch, and some work left. However, work seem to have stalled.
I am wondering, is a 1.4 release (0.39 I guess?) planned to be released anytime soon? And if not, I would be happy to learn about the why, just genuinely interested.
Thanks!
https://github.com/ash-rs/ash/milestone/2 target date is december
@unschlagbar Which December? The Milestone says December 6, 2100. Haha.
I've read through the open issues and PRs. Just to understand: The current understanding is that support for 1.4 requires a rewrite of the somewhat half-baked vk.xml parser and that this work basically stalled? I am curious and genuienly interested, why is that? Is this crate in maintenance-only mode? Is it not interesting because the main user of this crate is wgpu which basically does not care about later versions? If all of these questions are yes, this sounds like a new vulkan binding might be relevant so that the goals are decoupled (wgpu base vs. general VK usage). After looking at the parser code I understand why the general tone in the issues and PRs is that a rewrite is required.
Vulkan 1.4 support is planned using the existing generator. Work is proceeding (see merged PRs), but maintenance is on a volunteer basis and we have very limited time to work on ash, so it will take some time.
To add to that, Vulkan 1.4 doesn't require any of those alleged parser (neither generator, in case you meant that?) changes; the PR with the new API has been open for months already: #1000
It is that we have committed to the next round of breaking changes (to address existing soundness issues), and that there are a few more breaking changes I really want to make before cutting the next release (specifically: hiding provisional extensions to allow future breaking changes: #952). While not technically hard or interesting, they just took a very long time to materialize. But I think I'm almost done with the final checks to merge it, after which point all new 1.4 features and extensions can be trivially rebased and merged.
Thank you both for the detailed answers, this really helps. So is it fair to assume that 1.4 won't require a major redesign of the current API, I mean, for users?
1.4 itself does not, but we do have some breaking changes (to fix aforementioned soundness issues and hide provisional extensions) that will be part of the same breaking ash release.
However, Vulkan 1.4.330 completely redesigned how core functionality is represented in the spec; base, graphics and compute "features" are split out from each other while hierarchically depended on: https://github.com/KhronosGroup/Vulkan-Headers/pull/573. I'll discuss this in a new issue.