atagen

monolith

public
Star0
Watch0
f50ebc6999a68db7377a70c4d6e6c2096d50673b
1
ssh://brewery@pls.lobotomise.me:33/atagen/monolith.git
crates/render-vk/src/lib.rsRust28 lines999 B
1
//! Vulkan renderer implementing smithay's renderer traits.
2
//!
3
//! A frame records its draws as a list of operations and submits them in one
4
//! command buffer when it finishes, returning a fence as its sync point.
5
//!
6
//! Most `unsafe` here is a plain Vulkan call. Those rely on one invariant,
7
//! stated once instead of at each call. Every handle is created from the
8
//! `Shared` device that an `Arc` keeps alive past it, it is destroyed only by
9
//! its owner's `Drop`, and command buffers are recorded on the thread that
10
//! owns the renderer. `// SAFETY:` marks the sites that need more than that.
11
12
mod barrier;
13
mod device;
14
mod dmabuf;
15
mod error;
16
mod format;
17
mod frame;
18
mod image;
19
mod pipeline;
20
mod renderer;
21
mod sync;
22
mod transform;
23
24
pub use dmabuf::VulkanAllocator;
25
pub use error::Error;
26
pub use frame::{Clip, Effect, Transition, VulkanFrame};
27
pub use image::{VulkanImage, VulkanMapping, VulkanTarget, VulkanTexture};
28
pub use renderer::{DmabufImporter, ShmStager, StagedShm, VulkanRenderer};