#descriptor-set #vulkan #gpu #no-std

no-std gpu-descriptor

Implementation agnostic descriptor allocator for Vulkan like APIs

8 releases

new 0.3.0 Apr 9, 2024
0.2.4 Sep 25, 2023
0.2.3 Aug 11, 2022
0.2.2 Nov 17, 2021
0.1.0 Jan 23, 2021

#28 in Graphics APIs

Download history 27920/week @ 2023-12-23 35719/week @ 2023-12-30 41022/week @ 2024-01-06 45757/week @ 2024-01-13 50172/week @ 2024-01-20 46326/week @ 2024-01-27 49965/week @ 2024-02-03 47878/week @ 2024-02-10 54742/week @ 2024-02-17 51706/week @ 2024-02-24 49706/week @ 2024-03-02 48896/week @ 2024-03-09 47329/week @ 2024-03-16 57363/week @ 2024-03-23 55047/week @ 2024-03-30 35888/week @ 2024-04-06

201,941 downloads per month
Used in 1,264 crates (2 directly)

MIT/Apache

34KB
576 lines

gpu-descriptor

crates docs actions MIT/Apache loc

Library for Vulkan-like APIs to allocated descriptor sets from descriptor pools fast, with least overhead and zero fragmentation.

Straightforward usage:

use gpu_descriptor::DescriptorAllocator;

let mut allocator = DescriptorAllocator::new(max_update_after_bind_descriptors_in_all_pools); // Limit as dictated by API for selected hardware

let result = allocator.allocate(
    device, // Implementation of `gpu_descriptor::DescriptorDevice`. Comes from plugins.
    layout, // Descriptor set layout recognized by device's type.
    flags,  // Flags specified when layout was created.
    layout_descriptor_count, // Descriptors count in the layout.
    count, // count of sets to allocated.
);

License

Licensed under either of

at your option.

Contributions

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Support me on Patreon

Support me on Patreon

Dependencies

~1.5–2MB
~30K SLoC