Replies: 5 comments 32 replies
-
Abstract designThe current erupt generator works by building an intermediate representation of the data from the The reason for why erupt uses the Vulkan C headers in addition to I like this approach and think it's a good idea to keep it. |
Beta Was this translation helpful? Give feedback.
-
Analysis stageThe analysis stage takes parsed Multiple codegen backendsA codegen backend should be able to trivially take this information and generate Rust code from it, without doing lots of data transformation or searching across the datastructures to quickly adjust behaviour. In addition to the "regular" ash low-level wrapper code, and high-level helpers (currently hand-written, but should be automated with the new generator), I'd also like to do various codegen (into separate crates) to help with building Vulkan layers in Rust (automatically generating type-correct dispatch tables like what the validation layers and tools do). (@Friz64 If I understood you correctly Erupt already implements a design similar to this 👍) |
Beta Was this translation helpful? Give feedback.
-
I'm once again working on my abstraction above ash. Is there interest in ash-tray's vk-helper module? Recently I was working on implementing a type-state system for command buffers, but I'm finding there are more states than those "outlined" by the spec, specifically inside and outside a render pass has the effect of enabling and disabling some commands... but for whatever reason this is not part of the overview of command buffer lifecycle. I'm curious what happens to a bound pipeline when a renderpass starts or ends? Also binding a pipeline introduces a layout, so there is another state to track. Does that sound like I'm asking the right questions? |
Beta Was this translation helpful? Give feedback.
-
You can use |
Beta Was this translation helpful? Give feedback.
-
I was invited to post that I have made a working parser which can scrape all the info out of vk.xml: https://github.com/Lokathor/vkvk/blob/main/generator/src/vk_dot_xml_parser.rs
Feel free to make use of some or all of it if you like. The whole thing took like 2 days to do. The parser is really the easy part. It's the code generator that's the hard part. |
Beta Was this translation helpful? Give feedback.
-
This discussion is intended for deciding on design decisions of the rewrite.
Background: #344
Beta Was this translation helpful? Give feedback.
All reactions