vulkano-rs / vulkano

Safe and rich Rust wrapper around the Vulkan API
Apache License 2.0
4.45k stars 435 forks source link

Upgrade to `ash 0.38` #2510

Closed MarijnS95 closed 4 months ago

MarijnS95 commented 4 months ago

https://github.com/ash-rs/ash/releases/tag/0.38.0

Code compiles, but there's still quite some more cleanup to do across autogenerated files. A future change should more rigorously use the new builder pattern directly on Vulkan structs, so that the borrow checker can accurately track any lifetime and mutable-reference issues on all PerXXX structs that are now marked 'static.

TODO

Changelog:

### Public dependency updates
- [ash](https://crates.io/crates/ash) 0.38.0

### Breaking changes
Changes to `Surface`:
- Changed `from_win32()` argument types to take `HWND` and `HINSTANCE` as `isize`.

Renamed `PipelineStages::SUBPASS_SHADING` to PipelineStages::SUBPASS_SHADER`, following upstream Vulkan changes.
Rua commented 4 months ago

What still needs to be done for this PR?

MarijnS95 commented 4 months ago

I'm fairly certain to have written a TODO list via gh pr create when submitting this, but only the standard template entries remain (still need to be done anyway). Edited them into the PR description.

Rua commented 4 months ago

Regarding the change of *mut c_void to HANDLE, they don't seem to be the same type. In C it's a typedef to void*, which is equivalent to *mut c_void in Rust. Changing it to anything else would be a breaking change.

0xcaff commented 4 months ago

Regarding the change of *mut c_void to HANDLE, they don't seem to be the same type. In C it's a typedef to void*, which is equivalent to *mut c_void in Rust. Changing it to anything else would be a breaking change.

For what it is worth, raw-window-handle treated this as a breaking change. https://github.com/rust-windowing/raw-window-handle/commit/69d9eac14401e1a8868d14febe30583f9ea70a98#diff-ee9da70e8a36920d0c024abb7c25308cb435c3dcba46a3566abca2a11fd1cfffL36-R34

I think this is the right thing to do to maintain semantic versioning correctness.

Rua commented 4 months ago

Sounds good.

MarijnS95 commented 4 months ago

Yes, we followed suit on the isize change.