* Fix SPIR-V validation of image op functions with offsets
Shader instructions like `textureLodOffset` would always fail validation.
* Rename signed `get_constant_*` functions
* 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>
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.
* 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>
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>
* 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>