Commit Graph

3891 Commits

Author SHA1 Message Date
Martin Charles
91015a5eb2
Handle arrays in autogen (#2512)
* 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
2024-04-06 17:26:58 +02:00
Martin Charles
f84479b491
Handle more depends values in vk.xml (#2511)
* 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
2024-04-03 17:01:16 +02:00
Rua
55556bb916
#2508 changelog 2024-03-29 19:56:00 +01:00
Luke Powers
5dab2df966
support for ext_conservative_rasterization (#2508)
* disabled bad validation code

* conservative rasterization

* validation for conservative_rasterization

* rebuild

* extra_primitive_overestimation_size dynamic state

* safety fixed

* set builder state

* formatted

* unfixed fake bug fix

* actually unfixed fake bug fix

* fixed bad formatting

* deleted duplicate todo

* command buffer documentation

* formatted

* add vuid

Co-authored-by: Rua <ruawhitepaw@gmail.com>

* add vuid

Co-authored-by: Rua <ruawhitepaw@gmail.com>

* more validation

* Update vulkano/src/pipeline/graphics/mod.rs

Co-authored-by: Rua <ruawhitepaw@gmail.com>

* Update vulkano/src/pipeline/graphics/mod.rs

Co-authored-by: Rua <ruawhitepaw@gmail.com>

* Update vulkano/src/pipeline/graphics/mod.rs

Co-authored-by: Rua <ruawhitepaw@gmail.com>

* Update vulkano/src/pipeline/graphics/mod.rs

Co-authored-by: Rua <ruawhitepaw@gmail.com>

* put in block

* add todo

* fixed clippy

* removed redundant checks

---------

Co-authored-by: Rua <ruawhitepaw@gmail.com>
2024-03-29 19:54:44 +01:00
ComfyFluffy
78f3f9f508
Add details for error messages in validate_pipeline_descriptor_sets (#2509)
* add details in error messages for RecordingCommandBuffer::validate_pipeline_descriptor_sets

* update messages

* fix case
2024-03-29 19:18:03 +01:00
Rua
e9c650c966
Use workspace lints (#2505)
* Use workspace lints

* Use underscores for the lints, since they are canonically written that way

* Put lints after features
2024-03-28 11:58:43 +01:00
Okko Hakola
15f60f02c9
Pass timeout to acquire (#2503)
* Pass timeout to acquire

* Changelog

* Fix examples

* Switch input order
2024-03-27 22:00:56 +01:00
maratik123
93b6e9401f
Simplify VertexInputState::default() (#2502) 2024-03-23 15:34:39 +01:00
Rua
efab013e48
#2501 changelog 2024-03-23 15:33:43 +01:00
marc0246
94e4000a69
Add GenericMemoryAllocator::pools for allocation introspection (#2501)
* Add `GenericMemoryAllocator::pools` for allocation introspection

* Suballocator requires `&mut self` now

* Forgor a link
2024-03-23 15:32:41 +01:00
Michael Wu
7cbf3a7f26
Support event loops with custom user events (#2500) 2024-03-18 00:19:44 +01:00
Rua
900166707e
#2499 changelog 2024-03-16 10:55:18 +01:00
marc0246
984cbeb0c3
Add Suballocator::suballocations (#2499)
* Add `Suballocator::suballocations`

* Add missing `Send` and `Sync` impls for `free_list::Suballocations`

* Missed docs

* Strange import, what is rust-analyzer smoking
2024-03-16 10:52:51 +01:00
maratik123
f911996534
Code cleanup (#2497)
* refactoring

* fmt

* Update vulkano/src/command_buffer/commands/query.rs

Co-authored-by: marc0246 <40955683+marc0246@users.noreply.github.com>

* Update vulkano/src/buffer/subbuffer.rs

Co-authored-by: marc0246 <40955683+marc0246@users.noreply.github.com>

* Update vulkano/src/buffer/mod.rs

Co-authored-by: marc0246 <40955683+marc0246@users.noreply.github.com>

* Update vulkano/src/swapchain/mod.rs

Co-authored-by: marc0246 <40955683+marc0246@users.noreply.github.com>

* Update vulkano/src/sync/fence.rs

Co-authored-by: marc0246 <40955683+marc0246@users.noreply.github.com>

* Update vulkano/src/sync/semaphore.rs

Co-authored-by: marc0246 <40955683+marc0246@users.noreply.github.com>

* Update vulkano/src/sync/pipeline.rs

Co-authored-by: marc0246 <40955683+marc0246@users.noreply.github.com>

* Update vulkano/src/descriptor_set/mod.rs

Co-authored-by: marc0246 <40955683+marc0246@users.noreply.github.com>

* Update vulkano/src/image/mod.rs

Co-authored-by: marc0246 <40955683+marc0246@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: marc0246 <40955683+marc0246@users.noreply.github.com>

* review fixes

* post merge fixes

* fmt

---------

Co-authored-by: marc0246 <40955683+marc0246@users.noreply.github.com>
2024-03-13 17:37:28 +01:00
Rua
25a1184c75
#2496 changelog 2024-03-13 17:06:43 +01:00
maratik123
3472daa465
PhysicalDevice::surface_present_modes should return Vec result (#2496)
* 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
2024-03-13 17:05:17 +01:00
marc0246
87140ce3d0
Reorganize the suballocator module (#2498) 2024-03-13 11:17:33 +01:00
marc0246
64be09e290
Replace host::PoolAllocator with slabbin::SlabAllocator (#2493) 2024-03-12 19:26:16 +01:00
Rua
e62bf5d486
#2492 changelog 2024-03-08 18:45:26 +01:00
marc0246
7bba8ccca3
Refactor some braindead code in FreeListAllocator (#2492) 2024-03-08 18:44:45 +01:00
marc0246
ee0cabfa65
Fix PR template backticks 2024-03-08 18:38:10 +01:00
grego
7c8d6434d2
Fix using is_some when checking for None in render subpass valida… (#2489)
* Fix using `is_some` when checking for `None` in render subpass validation

* Fix the second occurence
2024-03-07 00:34:31 +01:00
marc0246
a4f9d9db30
#2490 changelog 2024-03-07 00:33:55 +01:00
Aspen
12c3c9dd26
add null-check for empty arrays in debug trampoline (#2490) 2024-03-07 00:32:44 +01:00
dependabot[bot]
b9f1cc3b7c
Bump mio from 0.8.10 to 0.8.11 (#2488)
Bumps [mio](https://github.com/tokio-rs/mio) from 0.8.10 to 0.8.11.
- [Release notes](https://github.com/tokio-rs/mio/releases)
- [Changelog](https://github.com/tokio-rs/mio/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tokio-rs/mio/compare/v0.8.10...v0.8.11)

---
updated-dependencies:
- dependency-name: mio
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-04 23:03:18 +01:00
marc0246
9220ae9f42
#2487 changelog 2024-03-04 23:00:34 +01:00
Rua
b190d6fb1c
Rewrite VertexDefinition (#2487) 2024-03-04 22:58:27 +01:00
marc0246
960e554ca0
#2486 changelog 2024-03-04 20:51:46 +01:00
Rua
7f5d3e6919
Add support for the ext_host_query_reset extension (#2486) 2024-03-04 20:50:25 +01:00
marc0246
19a89f3f42
Ignore the correct file #2451 creates (oops) 2024-03-04 20:37:12 +01:00
marc0246
d7d9b2825d
Ignore the file that #2451 creates 2024-03-04 20:35:11 +01:00
marc0246
0a48a64802
#2480 changelog 2024-03-04 19:57:40 +01:00
stefnotch
b34dbe9e09
Nom nom (#2480)
* 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
2024-03-04 19:53:07 +01:00
Rua
0375be7924
#2481 changelog 2024-03-04 17:25:17 +01:00
Rua
6a5aed496e
Rename Features, Properties to DeviceFeatures, DeviceProperties (#2481)
* Rename `Features`, `Properties` to `DeviceFeatures`, `DeviceProperties`

* Merge
2024-03-04 17:24:29 +01:00
Austin Johnson
aeb7a3ada5
#2460 Changelog 2024-03-03 16:30:41 -06:00
Rua
4666a9c722
Add runtime SPIR-V validation (#2460)
* 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>
2024-03-03 16:29:54 -06:00
Firestar99
16973acdab
added shader! generate_structs arg duplication error (#2485)
* 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>
2024-03-03 16:04:25 +01:00
Firestar99
1b7dfc9814
shader struct name replacing (#2484)
Co-authored-by: Firestar99 <4696087-firestar99@users.noreply.gitlab.com>
2024-03-03 15:47:23 +01:00
Rua
37e6120d3c
#2482 changelog 2024-03-03 15:25:08 +01:00
Firestar99
093b43e98d
General shader improvements, specifically targeting rust-gpu (#2482)
* 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>
2024-03-03 15:22:39 +01:00
Rua
50d82cdcde
#2483 changelog 2024-03-02 15:31:46 +01:00
José Miguel Sánchez García
eac4faea71
Add DepthState::reverse helper method (#2483) 2024-03-02 15:30:42 +01:00
Rua
1d2dbd27a2
#2476 changelog 2024-02-27 15:00:47 +01:00
marc0246
817436b13c
Fix alignment checks when allocating buffers (#2476) 2024-02-27 14:59:59 +01:00
marc0246
89e75cae2d
#2475 changelog 2024-02-21 09:31:45 +01:00
stefnotch
d60677b59e
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>
2024-02-21 09:30:15 +01:00
marc0246
1b91d4e5a9
Fix VulkanoWindowRenderer::acquire taking &Vec<T> as well 2024-02-21 09:24:50 +01:00
marc0246
4fcb869df2
#2473 changelog 2024-02-21 09:20:02 +01:00
marc0246
89cf5402d0
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.
2024-02-21 09:19:09 +01:00