Commit Graph

3890 Commits

Author SHA1 Message Date
marc0246
9196fa6eb2
#2571 changelog 2024-10-10 16:03:47 +02:00
marc0246
3189169a38
Fix UB in GenericMemoryAllocator::deallocate (#2572)
* Fix UB in `GenericMemoryAllocator::deallocate`

* Use the slab allocator
2024-10-10 12:21:59 +02:00
marc0246
f6bc05df94
Update dependencies (#2571)
* Update dependencies

* fmt
2024-10-10 12:16:14 +02:00
Rua
9033311653
Use Ash builders for Vulkan struct construction + refactor (#2525)
* Use Ash builders for Vulkan struct construction + refactor

* Use pointer for `from_qnx_screen`

* Workaround for Ash bug

* Fix vulkano-taskgraph

---------

Co-authored-by: marc0246 <40955683+marc0246@users.noreply.github.com>
2024-10-02 15:15:08 +02:00
marc0246
bad11eef71
Task graph [5/10]: the new command buffer (#2567) 2024-09-20 13:30:36 +02:00
Viktor Szépe
d89e5cf608
Mark generated files (#2542) 2024-09-12 10:45:11 +02:00
Rua
4197d15fd0
#2563 changelog 2024-09-12 10:27:27 +02:00
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