-
-
Notifications
You must be signed in to change notification settings - Fork 303
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Investigate the possibility of switching to Vulkan #108
Comments
Required StepsCurrently glium is used throughout nannou to provide support for OpenGL. The following are the steps required to make the switch to 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 |
This switches the windowed-graphics API from OpenGL (via glium) to Vulkan (via vulkano). You can read more about the motivations, thoughts and discussion behind this switch at nannou-org#208 and nannou-org#108. There are still a few items left to complete before this PR is ready: - [ ] Fix bug where view seems to be vertically flipped (probably in vertex mapping process). - [ ] Fix bug where clearing an image that is then multisampled does not work. vulkano-rs/vulkano#1123 - [ ] Add depth attachment to draw renderpass. - [ ] Fix bug where alpha channels always seem opaque. - [ ] Update old loop modes for changes in the application loop. - [ ] Merge conrod vulkan backend and switch to it. - [ ] Merge and publish vulkano-rs/vulkano#1117 or related fix so we can switch to crates.io dep. Closes nannou-org#208. Closes nannou-org#108.
Closed via #216. |
This switches the windowed-graphics API from OpenGL (via glium) to Vulkan (via vulkano). You can read more about the motivations, thoughts and discussion behind this switch at #208 and #108. There are still a few items left to complete before this PR is ready: - [ ] Fix bug where view seems to be vertically flipped (probably in vertex mapping process). - [ ] Fix bug where clearing an image that is then multisampled does not work. vulkano-rs/vulkano#1123 - [ ] Add depth attachment to draw renderpass. - [ ] Fix bug where alpha channels always seem opaque. - [ ] Update old loop modes for changes in the application loop. - [ ] Merge conrod vulkan backend and switch to it. - [ ] Merge and publish vulkano-rs/vulkano#1117 or related fix so we can switch to crates.io dep. Closes #208. Closes #108.
This switches the windowed-graphics API from OpenGL (via glium) to Vulkan (via vulkano). You can read more about the motivations, thoughts and discussion behind this switch at #208 and #108. There are still a few items left to complete before this PR is ready: - [ ] Fix bug where view seems to be vertically flipped (probably in vertex mapping process). - [ ] Fix bug where clearing an image that is then multisampled does not work. vulkano-rs/vulkano#1123 - [ ] Add depth attachment to draw renderpass. - [ ] Fix bug where alpha channels always seem opaque. - [ ] Update old loop modes for changes in the application loop. - [ ] Merge conrod vulkan backend and switch to it. - [ ] Merge and publish vulkano-rs/vulkano#1117 or related fix so we can switch to crates.io dep. Closes #208. Closes #108.
Requirements
cargo run
.Nice-to-haves
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.The text was updated successfully, but these errors were encountered: