ArrowMaxGithub / vku

Utility crate for kickstarting vulkan development in Rust.
https://crates.io/crates/vku
2 stars 1 forks source link

Embedding this library? #4

Closed DaOnlyOwner closed 7 months ago

DaOnlyOwner commented 7 months ago

Hi Arrow,

your library is a breath of fresh air. I looked through the source and it's exactly the right abstraction level for my little project. So my question: Would it be okay with you, if I take this library and embed it in my project (of course with correct attribution). To be precise, I would like to create a separate workspace member and copy&paste your src/ folder into there due to faster iteration. I am asking since the MIT license theoretically allows that, but I want to be sure it's also fine with you.

Thanks and have a good day!

ArrowMaxGithub commented 7 months ago

Hi there,

feel free to use this project in any way you see fit, just bear in mind that it's very much WIP, not deeply documented and quite a thin wrapper compared to more feature-rich ones like Vulkano or wgpu. I had started writing this while learning alongside https://vkguide.dev/ and reading through the reference.

I've just pushed my dev version to a separate branch, ash-0.38. It's not yet released on crates.io/docs.rs, because I am waiting for gpu-allocator to merge a PR and update to ash 0.38.

DaOnlyOwner commented 7 months ago

Yeah, the crate is good because it provides reasonable defaults during intialization. C++ has vk-bootstrap, what does Rust have in that regard? Nothing really, everyone is still writing the same boilerplate code every time.

Really cool! Thanks for updating so quickly. I think the guys from Traverse already completed all tasks it seems, so we can expect an update soon. Just curious - why did you decide to switch from vma to gpu_allocator?

ArrowMaxGithub commented 7 months ago

Yeah there are fully fledged graphics APIs like wgpu and high-level abstrations like Vulkano, but no low-ish level wrappers around the raw ash bindings.

Originally I was using the FFI bindings to VMA from https://github.com/gwihlidal/vk-mem-rs but ran into some compile failures with recent versions of ash. I was looking for an alternative library for VMA, but eventually gave gpu-allocator a try.

Apart from some exotic functionality, it's essentially the same thing and not relying on FFI doesn't hurt either.