https://github.com/zakarumych/gpu-descriptor
Backend agnostic descriptor allocator for Vulkan-like APIs
https://github.com/zakarumych/gpu-descriptor
dx12 gpu rust vulkan
Last synced: about 1 year ago
JSON representation
Backend agnostic descriptor allocator for Vulkan-like APIs
- Host: GitHub
- URL: https://github.com/zakarumych/gpu-descriptor
- Owner: zakarumych
- License: other
- Created: 2020-11-22T10:03:27.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-12-19T12:23:50.000Z (over 1 year ago)
- Last Synced: 2025-04-12T12:08:25.251Z (about 1 year ago)
- Topics: dx12, gpu, rust, vulkan
- Language: Rust
- Homepage:
- Size: 46.9 KB
- Stars: 31
- Watchers: 2
- Forks: 11
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: COPYING
Awesome Lists containing this project
README
# gpu-descriptor
[](https://crates.io/crates/gpu-descriptor)
[](https://docs.rs/gpu-descriptor)
[](https://github.com/zakarumych/gpu-descriptor/actions?query=workflow%3ARust)
[](COPYING)

Library for Vulkan-like APIs to allocated descriptor sets
from descriptor pools fast, with least overhead and zero fragmentation.
Straightforward usage:
```rust
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
* Apache License, Version 2.0, ([license/APACHE](license/APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
* MIT license ([license/MIT](license/MIT) or http://opensource.org/licenses/MIT)
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
[](https://patreon.com/zakarum)