cargo run.After having a quick look at vulkano it looks like it might already be close to ticking all these boxes today! We would want to test that the simple triangle example compiles and runs easily on each of the major platforms first (macos, windows, linux). If not, we will have to investigate how easy it is to automate the downloading/installation of any necessary 3rd party free tools etc via a build.rs script.
Currently glium is used throughout nannou to provide support for OpenGL. The following are the steps required to make the switch to Vulkano.
GlFrame from the frame module for the vulkano alternative.nannou::draw::backend module to use vulkano.This interesting thread popped up in /r/rust recently.
My current thoughts are that, I value the "correctness" goals of vulkano enough to put up with some incomplete-ness and breakage in the short-term if it means we don't have to write our own unsafe API around some lower level crate like vk-sys. I would much prefer to have the rust compiler and type-system inform me of what "is" and "isn't" allowed in Vulkan's API than use some other more "flexible" crate that requires I comb over the vulkan documentation to ensure I'm using it correctly and don't run into weird vulkan-specific / GPU bugs. Having used glium, I know that tomaka is capable of pulling off very nice, type-safe APIs over renownly terrible, complex libraries (see OpenGL), however it doesn't look like he's been active on vulkano over the last month so it would be worth enquiring about the future of the crate before adding it as a dependency.
Yeh I agree, perhaps we could also contribute to vulkano to fix and incomplete-ness / breakage
Closed via #216.
Most helpful comment
This interesting thread popped up in /r/rust recently.
My current thoughts are that, I value the "correctness" goals of vulkano enough to put up with some incomplete-ness and breakage in the short-term if it means we don't have to write our own unsafe API around some lower level crate like vk-sys. I would much prefer to have the rust compiler and type-system inform me of what "is" and "isn't" allowed in Vulkan's API than use some other more "flexible" crate that requires I comb over the vulkan documentation to ensure I'm using it correctly and don't run into weird vulkan-specific / GPU bugs. Having used glium, I know that tomaka is capable of pulling off very nice, type-safe APIs over renownly terrible, complex libraries (see OpenGL), however it doesn't look like he's been active on vulkano over the last month so it would be worth enquiring about the future of the crate before adding it as a dependency.