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_panics_doc,
14    clippy::missing_safety_doc,
15    clippy::module_name_repetitions,
16    clippy::needless_pass_by_value,
17    clippy::similar_names,
18    clippy::struct_field_names,
19    clippy::too_many_arguments,
20    clippy::too_many_lines,
21    clippy::wildcard_imports
22)]
23
24//
25// Imports
26//
27
28use std::collections::HashMap;
29use std::ffi::{c_void, CString};
30use std::mem::{size_of, size_of_val, zeroed, MaybeUninit};
31use std::ptr::{addr_of, addr_of_mut, null, null_mut};
32
33use anyhow::{bail, ensure, Context, Result};
34use log::{debug, error, log};
35use vulk::vk;
36
37//
38// Modules
39//
40
41pub mod vkx;
42
43//
44// Utilities
45//
46
47fn aligned_size(size: vk::DeviceSize, alignment: vk::DeviceSize) -> vk::DeviceSize {
48    assert!(alignment.is_power_of_two());
49    (size + alignment - 1) & !(alignment - 1)
50}