1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
//! Raw FFI bindings to the vendored VkFFT C++ library.
//!
//! This crate is internal plumbing for the `gpufft` crate. It exposes the
//! minimal subset of VkFFT needed to initialize an FFT application from a
//! Rust-built `VkFFTConfiguration`, append dispatches to a caller-allocated
//! Vulkan command buffer via `VkFFTAppend`, and release resources on drop.
//!
//! # Safety
//!
//! Every item in this crate is `unsafe` by construction. Lifetimes of the
//! Vulkan handles and of the storage backing the `VkFFTConfiguration`
//! pointer fields are the caller's responsibility. Downstream crates should
//! depend on `gpufft` instead, which wraps these calls in a typed API.
// bindgen emits unsafe blocks wrapping C calls with `wrap_unsafe_ops(true)`;
// the safety contract for each call lives in the wrapper's own doc comment
// rather than on every generated block.
include!;
/// Pinned VkFFT submodule tag that this crate was built against.
pub const VKFFT_VENDOR_TAG: &str = "v1.3.4";
/// Returns VkFFT's runtime version as a packed integer.
///
/// Encoding follows VkFFT's own convention: `major * 10000 + minor * 100 + patch`.
/// For v1.3.4 this is `10304`.