Commit Graph

3933 Commits

Author SHA1 Message Date
marc0246
f508cab5da
Use the now-stabilized pointer_bytes_offsets instead of what is technically UB and clean up the BufferContents derive macro expansion (#2563)
* Clean up `BufferContents` derive expansion

* Use the now-stabilized `pointer_bytes_offsets` instead of technical UB
2024-09-12 10:27:00 +02:00
marc0246
a0b909fd8b
#2561 changelog 2024-09-11 18:08:00 +02:00
Mads Marquart
0af3fb3cb3
Use raw-window-metal to get a CAMetalLayer from raw-window-handle (#2561)
The way `raw-window-metal` works is by creating a layer, and inserting
that as a sublayer, just like we did on iOS before. The bounds are then
kept in-sync with an observer, ensuring smooth resizing.

This also fixes compilation errors on iOS, and adds preliminary support
for tvOS.

The implementation now solely uses `VK_EXT_metal_surface`, which was
added in 2018, instead of `VK_MVK_ios_surface` / `VK_MVK_macos_surface`,
which are deprecated, and only available a year and a half earlier
anyhow.

Note that apart from the above, there is a slight behavioral change on
macOS: we no longer set `edgeAntialiasingMask` on the layer, as it's not
really required, and allows us to avoid depending on `objc2` directly.
It was introduced without motivation in 40e0b24, so I doubt anyone uses
it, and if they do, they can change it on the layer themselves.
2024-09-11 18:03:54 +02:00
Okko Hakola
db4657d0f0
See if 0 (but not None) timeout would solve crash (#2543)
* See if 0 (but not None) timeout would solve crash

* Try 1 sec timeout
2024-09-11 17:23:13 +02:00
Rua
38b9aff8a8
#2560, #2562 changelog 2024-09-11 17:03:39 +02:00
marc0246
e8ddaef0e3
Add PhysicalDevice::presentation_support (#2562) 2024-09-11 17:02:27 +02:00
marc0246
79c30fd1a8
Task graph [4/10]: compilation (#2560) 2024-09-11 15:59:18 +02:00
marc0246
cd4603b3cc
Fix rust-analyzer choking on &&[u32] in shader macro expansion 2024-08-26 20:34:19 +02:00
marc0246
b2a93d391d
#2556 changelog 2024-08-15 08:05:41 +02:00
Mai
817b52cee5
Fix off-by-one error in SubpassDescription::validate (#2556)
* fix: off-by-one error in `SubpassDescription::validate`

* use `view_count` instead of `highest_view_index`
2024-08-14 07:16:10 +02:00
Mai
d02165a28c
doc: add device feature requirement to RecordingCommandBuffer::begin_rendering (#2557) 2024-08-13 20:03:21 +02:00
Mai
2aafcf9a3d
add attributes to Validated methods (#2555) 2024-08-08 15:00:57 +02:00
Rua
45ff753e77
#2552 changelog 2024-08-03 19:24:41 +02:00
Firestar99
795b573e3f
fix non-default image view usage being ignored (#2552)
Co-authored-by: Firestar99 <4696087-firestar99@users.noreply.gitlab.com>
2024-08-03 19:23:19 +02:00
SSSxCCC
c8fb6a16c2
Add steel to projects using vulkano. (#2551)
* Add steel to projects using vulkano.

* Add steel to projects using vulkano.
2024-07-28 12:47:40 +02:00
marc0246
5782c1a2a6
Task graph [3/10]: execution (#2548) 2024-07-28 11:35:58 +02:00
marc0246
ad62bf233c
Fix latest clippy warnings 2024-07-25 20:39:57 +02:00
Rua
8ca2bf7868
#2545 changelog 2024-07-21 13:15:47 +02:00
marc0246
e6e4bc6a26
Task graph [2/10]: the task graph data structure (#2545) 2024-07-21 13:14:55 +02:00
Rua
48566ae108
#2540 changelog 2024-07-09 12:41:20 +02:00
marc0246
796cb35acd
Task graph [1/10]: resource synchronization state tracking (#2540) 2024-07-09 12:40:15 +02:00
Rua
5b466bf143
#2515 changelog 2024-07-02 18:31:15 +02:00
Firestar99
7841628003
Bindless Descriptor fixes and optimizations (#2515)
* more SmallVec use in DescriptorPool, to improve variable descriptor count allocation

* descriptor updates with no writes or copies return early

* add DescriptorSet::invalidate()

* make InvalidateDescriptorSet pub

* allow descriptor bindings with update_after_bind or partially_bound to be unbound on recording a draw/dispatch command

---------

Co-authored-by: Firestar99 <4696087-firestar99@users.noreply.gitlab.com>
2024-07-02 18:29:46 +02:00
grego
252329cbf3
vulkano-util: do not pull the default winit features (#2533)
This allows a downstream user to set which winit features to use, possibly
sparing a lot of dependencies from being pulled and compiled.

Co-authored-by: Rua <ruawhitepaw@gmail.com>
2024-06-30 15:23:19 +02:00
Viktor Szépe
07736487d6
Fix typos and introduce a workflow (#2537)
* Fix typos and introduce a workflow

* Revert vk.xml

* Update .typos.toml

* fix typos config
2024-06-30 13:19:35 +02:00
Chay Nabors
e949e35f91
Allow memory interface blocks to have offset decorations on first member (#2535) 2024-06-30 11:57:46 +02:00
marc0246
582a2466f3
Fix latest clippy warnings 2024-06-20 20:27:18 +02:00
Rua
b9f3e89300
#2514 changelog, group additions 2024-06-07 12:08:06 +02:00
Martin Charles
64f3b1e7bc
add memoryMapPlaced and memoryMapRangePlaced features of VK_EXT_map_memory_placed extension (#2514)
* add partial support for VK_EXT_map_memory_placed extension

implements the memoryMapPlaced and memoryMapRangePlaced features

* fix clippy lint

* add tests

I don't love these tests, they probably fail silently in CI

* fix conflicting requirement

* update test

* fmt

* fix memory selection in test

intersects does not do what I thought it does

* remove incorrect assertion

I don't think this is correct. The offset and size are both DeviceSize or u64. They are added together as positive numbers.

* remove unused

* put back non-range test

* only run test on unix

* wrap stuff to 100 cols

this is actually really nice for reading

* clippy

* tweak impl

* scope

* remove unused

* use NonNull

* fmt

* add flags field

* update position

* PLACED_EXT -> PLACED

* removed unnecessary validation

* Update vulkano/src/memory/device_memory.rs

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

* Update vulkano/src/memory/device_memory.rs

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

* Update vulkano/src/memory/device_memory.rs

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

* Update vulkano/src/memory/device_memory.rs

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

* Update vulkano/src/memory/device_memory.rs

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

* remove more

* typo

* Update vulkano/src/memory/device_memory.rs

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

* add validate_device call

* Update vulkano/src/memory/device_memory.rs

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

* Update vulkano/src/memory/device_memory.rs

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

* Update vulkano/src/memory/device_memory.rs

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

* fix links

* remove extra branch

* use WHOLE_SIZE

* use getter

* fix boolean condition

* Update vulkano/src/memory/device_memory.rs

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

* add specific changes marc asked for

i've concluded that this choice is roughly semantically equivalent and this comes down to opinion. I can't be bothered to have an opinion here, imo this is a bikeshed.

also it is temporary. until the docs are updated and the impls are updated. also i don't even really care about the ranged version of this feature, implemented it mostly for completeness than anything else

* Incorporate latest spec updates

---------

Co-authored-by: marc0246 <40955683+marc0246@users.noreply.github.com>
Co-authored-by: Rua <ruawhitepaw@gmail.com>
2024-06-07 12:00:16 +02:00
marc0246
978c922e1b
Fix latest clippy warning 2024-06-01 15:42:17 +02:00
marc0246
42e4d0b7c3
Fix shaderc dependency version
See
https://github.com/vulkano-rs/vulkano/pull/2467#issuecomment-2094935117
2024-05-05 22:17:47 +02:00
Rua
c03e2b926c
#2519 changelog 2024-04-19 13:55:23 +02:00
marc0246
bb622ea4ba
Add ResourceMemory::from_device_memory_unchecked (#2519) 2024-04-19 13:54:50 +02:00
marc0246
d7f7e49d18
#2516 changelog 2024-04-19 12:29:38 +02:00
Rua
87993aa3d7
Set MSRV to 1.72.0 (#2516)
* Set MSRV to 1.72.0

* Use workspace inheritance for some package fields

* Authors seem to differ, so don't inherit that

* Consistency
2024-04-19 12:27:26 +02:00
Martin Charles
3fb4a30a9f
fix null handling of array fields in autogen properties (#2518)
* add UnalignedSlice

* Revert "add UnalignedSlice"

This reverts commit 8bb1603ed3.

* add null check

* clippy

* rerun ci
2024-04-19 10:32:23 +02:00
Rua
7827b6b22a
#2513 changelog 2024-04-08 22:24:28 +02:00
Martin Charles
0918ac84d7
Integrate latest vk.xml changes (#2513)
* update ash

* update autogen for vk.xml updates

* add fields

* fix new clippy warning

* define enum and bitfield

didn't look at the actual type before

* comment
2024-04-08 22:22:48 +02:00
Rua
fe74e0aac8
Enable and fix pointer cast lints (#2507)
* Enable and fix pointer cast lints

* Fix for #2508

* Use coercion instead of `ptr::from_ref`

* Search-and-replace fail

* Replace `addr_of!` + `cast`
2024-04-08 20:02:56 +02:00
marc0246
18c88cd854
Changelog was borked 2024-04-07 12:40:30 +02:00
Rua
b42fc43f93
#2510 changelog 2024-04-07 12:18:51 +02:00
Marijn Suijten
77abaff2f0
Upgrade to ash 0.38 (#2510)
* Upgrade to `ash 0.38`

https://github.com/ash-rs/ash/releases/tag/0.38.0

* Clean up subpass shading -> shader pipeline stage name
2024-04-07 12:16:30 +02:00
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