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>
* 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
* 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
* 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