Commit Graph

3694 Commits

Author SHA1 Message Date
marc0246
118b5b289b
Add homegrown IDs for Vulkan objects (#2054) 2022-10-29 19:32:43 +02:00
Austin Johnson
c6e01446ac
#2050 Changelog 2022-10-29 05:51:59 -05:00
Rua
4b77ef0595
Add new safe Buffer and Image types containing bound memory (#2050)
* Add new safe `Buffer` and `Image` types containing bound memory

* Doc fixes

* Include sparse memory requirements in `ImageMemory`

* Properly support `subresource_layout`

* Add cache to `subresource_layout`
2022-10-29 05:50:45 -05:00
Rua
45deca7327
Fix #2047 (#2048) 2022-10-29 05:17:15 -05:00
Rua
39ec4e3da2
#2052 changelog 2022-10-28 17:51:23 +02:00
insertt
0b59b05544
Fix depth and stencil attachment check when building pipeline (#2052) 2022-10-28 17:50:48 +02:00
marc0246
8670f3d251
#1997 fixes (#2049)
* Fix big oopsies

* Fix docs

* Syntactical improvements

* Use more fitting names for some private types
2022-10-28 09:23:29 +02:00
marc0246
8a1c91f556
Make command buffer/descriptor set allocators Sync again (#2046)
* Make cmd buffer/desc set allocators `Sync` again

* Ingles
2022-10-27 20:59:47 +02:00
Rua
99aea525c0
#1997 changelog 2022-10-26 16:26:31 +02:00
marc0246
34b709547f
Memory allocation revamp (#1997)
* Add suballocators

* Add tests

* Retroactively abort `PoolAllocatorCreateInfo`

* Use const generic for `PoolAllocator`'s block size

* Move `new` and `try_into_region` to `Suballocator`

* Move `allocate_unchecked` to `Suballocator`

* Fix constructor visibility

* Move `free_size` to `Suballocator`

* Small fixes

* Merge `BumpAllocator` and `SyncBumpAllocator`

* Restrict `AllocParent::None` to tests

* Rewording

* Add dedicated allocations

* Add `Suballocator::cleanup`

* Make `free_size`s lock-free

* Add `Suballocator::largest_free_chunk`

* Add `ArrayVec`

* Remove useless `unsafe`

* Add `MemoryAllocator`

* Add `GenericMemoryAllocator`

* Small fixes

* Retroactively abort `largest_free_chunk`

* Small docs adjustments

* Rearrange

* Add `MemoryAlloc::mapped_ptr`

* Fix oopsie

* Add support for non-coherent mapped memory

* Add `DeviceOwned` subtrait to `Suballocator`

* Move granularities to suballocators, fix tests

* Add cache control

* Fix oopsie where alignment of 0 is possible

* Store `Arc<DeviceMemory>` in suballocators

* Add `MemoryAllocator::create_{buffer, image}`

* Remove `MemoryPool`

* Fix examples

* Remove `MemoryAlloc::{memory, memory_type_index}`

* Minor improvement to `AllocationCreationError`

* Add some example docs

* Add support for external memory

* Swicheroo

* Small fix

* Shorten sm names, cache atom size in suballocators

* Add config for allocation type to generic allocatr

* Engrish

* Fix a big oopsie

* Spliteroo

* Inglisch
2022-10-26 16:25:01 +02:00
Rua
f079c2bc08
#2043 #2044 additions 2022-10-24 16:53:57 +02:00
Austin Johnson
fb2c116f5c
#2044 Changelog 2022-10-24 02:34:01 -05:00
Rua
999f251443
Add checks for khr_portability_subset (#2044)
* Add checks for `khr_portability_subset`

* Better documentation

* Small fix

* Fix typo
2022-10-24 02:33:24 -05:00
Austin Johnson
f9932bcffc
#2043 Changelog 2022-10-23 17:42:28 -05:00
Rua
7e92f35b6e
Near-full support for VK_KHR_synchronization2 (#2043)
* Near-full support for `VK_KHR_synchronization2`

* Missing validation checks
2022-10-23 17:42:23 -05:00
Austin Johnson
2738541b42
#2041 Changelog 2022-10-23 17:29:45 -05:00
Rua
0b5ad98b44
Move resource locking to submit function (#2041) 2022-10-23 17:29:40 -05:00
Rua
a9bd46e96a
#2037 changelog 2022-10-20 10:05:44 +02:00
Rua
b923001faf
Rename internal_object to handle (#2037) 2022-10-20 10:05:00 +02:00
Austin Johnson
52d4b32988
#2036 Changelog 2022-10-20 02:26:38 -05:00
Rua
cdab36a322
Remove type parameter from Surface (#2036) 2022-10-20 02:26:34 -05:00
marc0246
725c12c542
Minor tweaks to DeviceMemory (#2038)
* Minor tweaks to `DeviceMemory`

* Remove `Copy` from non-exhaustive structs

* Derp

* Inline wrappers
2022-10-14 10:41:44 +02:00
Rua
b50a9d8d5d
Some of vkQueueSubmit2 is supported but not all 2022-10-13 09:50:07 +02:00
Rua
0e475e6126
#2035 additions 2022-10-13 09:47:20 +02:00
Austin Johnson
88c7473509
#2035 Changelog 2022-10-12 19:04:58 -05:00
Rua
43223f564b
Add safety checks to semaphores, add importing and exporting (#2035)
* Add safety checks to semaphores, add importing and exporting

* Small fix

* Limit test to unix only
2022-10-12 19:04:54 -05:00
Rua
bda4aaaf2c
#2030 doc fixes (#2032) 2022-10-12 18:55:21 -05:00
Rua
c94a494fc0
#2034 changelog 2022-10-12 11:38:12 +02:00
daigennki
1bb2602c96
Fixed queue family index count not being set in buffers and images (#2034) 2022-10-12 11:37:18 +02:00
Rua
ac914d104a
#2033 changelog 2022-10-10 16:35:22 +02:00
marc0246
c8b611a4e9
Switch to an atomic counter for DeviceMemory allocations (#2033)
* Add atomic counter for `DeviceMemory` allocations

* Switch to atomics only
2022-10-10 16:34:42 +02:00
Rua
2ccf985acf
#2031 changelog 2022-10-09 13:51:46 +02:00
marc0246
605bf429ac
Fix missing validation when binding memory to buffers with the shader_device_address usage (#2031)
* Add `MemoryAllocateFlags`

* Add validation to `UnsafeBuffer::bind_memory`

* Fix fn ptr in `BufferAccess::raw_device_address`

* Oopsie

* More validation, reject `device_address` on EXT

* Fix links

* Fix docs
2022-10-09 13:49:50 +02:00
Austin Johnson
5ea2f3feba
#2030 Changelog 2022-10-08 08:22:41 -05:00
Rua
df26f8105e
Buffer and image uploads take a command buffer instead of making one (#2030) 2022-10-08 08:22:37 -05:00
Rua
8409173203
Check for empty aspects when creating ImageView (#2028) 2022-10-08 08:14:07 -05:00
marc0246
3c6c1c909f
Remove unneccessary muts left after #1957 (#2029) 2022-10-07 08:59:54 +02:00
Rua
9f0fd9df63
#2024 additions 2022-10-06 14:46:31 +02:00
Rua
6f812b1f4d
Minor documentation fixes (#2025) 2022-10-06 07:40:42 -05:00
Austin Johnson
376df7ad7f
#2024 Changelog 2022-10-06 07:40:01 -05:00
Rua
aafee08db0
Add support for Unix and Windows external fences (#2024)
* Add support for Unix and Windows external fences

* Grumble...
2022-10-06 07:39:28 -05:00
Rua
de920e4a3c
Better error message when source is too small for ImmutableImage (#2022) 2022-10-06 07:36:38 -05:00
Austin Johnson
f99c67929f
Fix checks from #2009 (#2023) 2022-10-06 10:53:50 +02:00
lilly lizard
2992f0d0fc
Fix physical device surface querying regression #2026 by removing surface caching (#2027)
* removed cache check for PhysicalDevice::surface_capabilities_unchecked, fixing window resize bug

* Fixed bug where new caching functionality caused surface queries to be
out of date. surface_capabilities, surface_formats,
surface_present_modes and surface_support are no longer cached as it is
proven that surface properties can change at runtime for a given
surface/physical device.

* Re-added caching for VK_KHR_surface structs surface_formats, surface_present_modes and surface_support, because unlike surface_capabilities, it is almost certain they won't change at runtime.

* remove surface_capabilities cache from macos/ios to fix builds
2022-10-06 10:52:57 +02:00
Rua
b12e8f97e4
Missed changes 2022-10-05 16:28:53 +02:00
Rua
b686ee39cb
#1957 changelog 2022-10-05 11:10:43 +02:00
marc0246
ef65c98ad1
Move to manual management of descriptor set and command buffer allocators (#1957)
* Rename `Pool` -> `Allocator`

* Fix module names

* Rename actual pool types

* Remove internally managed allocators

* Fix doc tests

* Update docs

* Update examples

* Fix merging oopsie

* Fix cb allocators only working for one q family

* Make `DescriptorPool` `!Sync`, remove `&mut`

* Combine lean files

* Consistency

* Rename single layout pools

* Re-export variable descriptor set pool

Co-authored-by: comrademarc <40955683+comrademarc@users.noreply.github.com>
2022-10-05 11:09:26 +02:00
Rua
f70f43340f
Shorten the labels a bit to make it less wide 2022-10-04 18:27:40 +02:00
Rua
7b49dcefe9
More complete shield links (#2021) 2022-10-04 11:21:44 -05:00
marc0246
143390bc57
Fix clippy warnings resulting from #2016 (#2020) 2022-10-04 12:25:34 +02:00