* unwrap if else
reduce nesting using early returns to make code a bit less branchy
* handle array in autogen
handles the case where a type in vk.xml has a field which is an array.
See pr description for more info.
* use reference in from_vulkan call instead of cloning
let the callee decide to whether or not to clone it if they want
* remove extra constraint
oops
* add copy blanket impl for references
* add inline
* add conjunctive normal form normalization
honestly, i think it might be easier to read the code if we skip all this cnf stuff and instead just keep the original boolean expression around but I don't have the context yet to comfortable making a change to both the read and write sides of the autogen
* support non-parens precedence for depends parsing
and (allof) takes precedence over or (oneof), implementing eager binding at the parser level
would be great to have tests for this to make sure its correct
* address panic formatting nit
* PhysicalDevice::surface_present_modes should return Vec result as any other this struct functions for consistency and to eliminate composing result back to Vec in outer usages, such as:
```rust
let present_mode = physical_device
.surface_present_modes(surface, SurfaceInfo::default())?
.collect();
Ok(SwapChainSupportDetails {
_capabilities: capabilities,
formats,
present_mode,
})
```
* fmt
* review fix
* Replace formats.rs and features.rs regex with nom
* Fix missing eof in format rs
* Refactor parsing logic in extensions.rs
* Replace regex in mod.rs
* Replace regex in spriv_reqs.rs
* Improve nom usage for parsing get_header_version
* Remove stray dbg
* Remove final usage of regex
* Replace tag("single character") with char(...)
* Remove unused import
* Undo my testing changes to vk.xml
(I shouldn't have committed that)
* Sort cargo toml alphabetically
* Use nom for parse_depends
* Simplify parser again
* Parser cleanup
* Inline parser logic for shorter code
Thanks to marc for suggesting this
* Fix clippy violation
* Remove useless parse prefix
* Add runtime SPIR-V validation
* Remove copyright message
* fmt
* Up vk version in shader compilation (#2467)
* Up vk version in shader compilation
* Update test in codegen.rs
* cargo +nightly fmt
* Update lib.rs
* clippy + fmt fixes
* simplify changes
* post merge
* #2467 changelog
* Remove windows specific dnd disable (#2474)
* Fix unnecessarily strict validation for DRM format modifiers (#2469)
* #2469 changelog
* Add support for querying memory requirements directly from the device (#2470)
* #2470 changelog
* Make image_index and final_views accessible, and add new example. (#2473)
* Make image_index and final_views accessible, and new example.
The first 2 changes should make creating frame buffers easier.
The new example should make it easier to learn vulkano-util.
* Remove unnecessary imports, and run clippy.
* Run fmt.
* .acquire() no longer returns image_index
* rename final_views() to swapchain_image_views()
The name change makes it more consistent with swapchain_image_view().
Personally I don't understand why the field name is final_views, yet we externally in function names refer to it as swapchain image views and such like.
* Fractal example no longer creates framebuffer every frame.
* Game of life example no longer creates framebuffer every frame.
(Also removed a piece of code I had commented out, but had forgotten to remove from the fractal example.)
* Rename if_recreate_swapchain to on_recreate_swapchain and update acquire() documentation. to on_recreate_swapchain
* on_recreate_swapchain is now impl FnOnce instead of generics based FnMut
Thanks marc0246!
Co-authored-by: marc0246 <40955683+marc0246@users.noreply.github.com>
* Replace empty comment with an actual comment.
---------
Co-authored-by: marc0246 <40955683+marc0246@users.noreply.github.com>
* Fix `VulkanoWindowRenderer::swapchain_image_views` return type
I have only noticed this as I was writing the changelog.
@coolcatcoder for future reference, `&Vec<T>` is an anti-pattern. There's nothing more you can do with it than with `&[T]` (because the reference is immutable) and it means that we can't use a different underlying buffer without a breaking change.
* #2473 changelog
* Fix `VulkanoWindowRenderer::acquire` taking `&Vec<T>` as well
* Replace cgmath with glam in the examples (#2475)
* Replace cgmath with glam in the examples
* Implement type_for_format! for glam
* Remove comment where I'm freaking out because of OpenGL flashbacks
* Update Cargo.toml
Co-authored-by: marc0246 <40955683+marc0246@users.noreply.github.com>
* Update vulkano/autogen/formats.rs
Co-authored-by: marc0246 <40955683+marc0246@users.noreply.github.com>
* Fix glam type_for_format
* Format the code
---------
Co-authored-by: marc0246 <40955683+marc0246@users.noreply.github.com>
* #2475 changelog
* Fix alignment checks when allocating buffers (#2476)
* #2476 changelog
* Add `DepthState::reverse` helper method (#2483)
* #2483 changelog
* Add runtime SPIR-V validation
* Remove copyright message
* fmt
---------
Co-authored-by: maratik123 <marat.buharov@gmail.com>
Co-authored-by: Okko Hakola <okkohakola@gmail.com>
Co-authored-by: marc0246 <40955683+marc0246@users.noreply.github.com>
Co-authored-by: Katt <51190960+coolcatcoder@users.noreply.github.com>
Co-authored-by: stefnotch <stefnotch@users.noreply.github.com>
Co-authored-by: José Miguel Sánchez García <soy.jmi2k@gmail.com>
* shader struct name replacing
* added shader! `generate_structs` arg duplication error
* MacroInput.generate_structs is a bool rather than an Option<bool>
---------
Co-authored-by: Firestar99 <4696087-firestar99@users.noreply.gitlab.com>
* added tests for codegen reflect()
* added tests for a typical rust-gpu shader
* make idents that are invalid be named UnnamedX instead of panicing
* add generate_structs option to shader! macro, to disable struct generating
* get rid of macro_use extern crate
* disallow specifying a shader type for binary shaders
* fix mesh shaders output interface not being arrayed
* structs in shader interface panic with explanatory message
* fix clippy lints
Co-authored-by: Rua <ruawhitepaw@gmail.com>
---------
Co-authored-by: Firestar99 <4696087-firestar99@users.noreply.gitlab.com>
Co-authored-by: Rua <ruawhitepaw@gmail.com>
* Replace cgmath with glam in the examples
* Implement type_for_format! for glam
* Remove comment where I'm freaking out because of OpenGL flashbacks
* Update Cargo.toml
Co-authored-by: marc0246 <40955683+marc0246@users.noreply.github.com>
* Update vulkano/autogen/formats.rs
Co-authored-by: marc0246 <40955683+marc0246@users.noreply.github.com>
* Fix glam type_for_format
* Format the code
---------
Co-authored-by: marc0246 <40955683+marc0246@users.noreply.github.com>
I have only noticed this as I was writing the changelog.
@coolcatcoder for future reference, `&Vec<T>` is an anti-pattern. There's nothing more you can do with it than with `&[T]` (because the reference is immutable) and it means that we can't use a different underlying buffer without a breaking change.