vulk_ext/
lib.rs

1//
2// Lints
3//
4
5#![deny(future_incompatible)]
6#![deny(nonstandard_style)]
7#![deny(clippy::pedantic)]
8#![allow(
9    clippy::cast_possible_truncation,
10    clippy::cast_precision_loss,
11    clippy::cast_sign_loss,
12    clippy::missing_errors_doc,
13    clippy::missing_safety_doc,
14    clippy::missing_panics_doc,
15    clippy::module_name_repetitions,
16    clippy::needless_pass_by_value,
17    clippy::similar_names,
18    clippy::too_many_arguments,
19    clippy::too_many_lines,
20    clippy::wildcard_imports
21)]
22
23//
24// Imports
25//
26
27use std::collections::HashMap;
28use std::ffi::{c_void, CString};
29use std::mem::{size_of, size_of_val, zeroed, MaybeUninit};
30use std::ptr::{addr_of, addr_of_mut, null, null_mut};
31
32use anyhow::{bail, ensure, Context, Result};
33use log::{debug, error, log};
34use vulk::vk;
35
36//
37// Modules
38//
39
40pub mod vkx;
41
42//
43// Utilities
44//
45
46fn aligned_size(size: vk::DeviceSize, alignment: vk::DeviceSize) -> vk::DeviceSize {
47    assert!(alignment.is_power_of_two());
48    (size + alignment - 1) & !(alignment - 1)
49}