1#![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
23use 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
36pub mod vkx;
41
42fn aligned_size(size: vk::DeviceSize, alignment: vk::DeviceSize) -> vk::DeviceSize {
47 assert!(alignment.is_power_of_two());
48 (size + alignment - 1) & !(alignment - 1)
49}