vk-mem-rs: Crate does not compile with newly released ash 0.33

First, thanks for making these bindings!

I’m hitting this compile error since ash 0.33 released. (I haven’t looked into the correct fix yet, but wanted to mention it)

error[E0432]: unresolved import `ash::version`
   --> .cargo/registry/src/github.com-1ecc6299db9ec823/vk-mem-0.2.2/src/lib.rs:753:18
    |
753 |         use ash::version::{DeviceV1_0, DeviceV1_1, InstanceV1_0};
    |                  ^^^^^^^ could not find `version` in `ash`

Also wanted to mention, since vk-mem does not use semver to reference ash (cargo.toml has ash >= 0.27.1), the new ash release broke CI in my project immediately. It would have been less disruptive if this library relied on a specific version of ash. (If needed, feature flags could be used to simultaneously support multiple versions of ash, i.e “ash-32”, “ash-33”, “ash-latest”, etc.)

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Reactions: 6
  • Comments: 18 (12 by maintainers)

Commits related to this issue

Most upvoted comments

@aclysma the second option definitely sounds like the most robust option. And yeah it can be somewhat messy if one does support lots of versions, though most of them would have identical ash code interaction still.

Unfortunately I think this crate is effectively unmaintained, we’ve moved to the pure Rust gpu-allocator instead

I have been given full permissions to merge PRs and publish new cargo crates, so closing this issue now. Please feel free to open a new issue if problems pop up.

I don’t know why ppl suggest gpu-allocator as some kind of replacement… Sure if you don’t think Panasonic and Sony are different, then I guess. The accolades of using AMD’s memory allocator VS something maintained by a third party are clear? I realized as I wrote that, that I don’t know anything about gpu-allocators owners. Owned by AMD is not something the readme points too, so I could be forgiven.

It sounds like this library is no longer maintained (https://github.com/gwihlidal/vk-mem-rs/issues/54#issuecomment-898736244) so I wouldn’t plan on anything to be merged at this point.

I wasn’t blaming ash. I only meant that having a dependency in the public API that is still evolving is problematic. And yes, the range specifier is the biggest issue here. There isn’t a way to pin the version of ash without Cargo.lock which makes libraries that depend on vk-mem a little frustrating.

Crates depending on vkmem can’t publish currently?