Commit Graph

16 Commits

Author SHA1 Message Date
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
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
5782c1a2a6
Task graph [3/10]: execution (#2548) 2024-07-28 11:35:58 +02:00
marc0246
e6e4bc6a26
Task graph [2/10]: the task graph data structure (#2545) 2024-07-21 13:14:55 +02:00
marc0246
796cb35acd
Task graph [1/10]: resource synchronization state tracking (#2540) 2024-07-09 12:40:15 +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
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
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
marc0246
64be09e290
Replace host::PoolAllocator with slabbin::SlabAllocator (#2493) 2024-03-12 19:26:16 +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
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
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
Katt
9a35fb0221
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>
2024-02-21 09:08:50 +01:00
marc0246
b202cb8813
Add lockfile entry that was missed in #2451 2024-01-15 04:17:50 +01:00
marc0246
fd352ec0f1
Cache dependencies in CI (#2449)
* Clean up CI config

* Cache Cargo home in CI

* Add `Cargo.lock`

* Use rust-cache

* Don't fail fast

* Disable the cache action for self-hosted runners
2024-01-10 02:26:35 -06:00