atagen

monolith

public
Star0
Watch0
b96f1a324a8807feaa85938ab4e8fef84273dee0
1
ssh://brewery@pls.lobotomise.me:33/atagen/monolith.git
crates/render-vk/src/lib.rsRust29 lines1.0 KB
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 staging;
22
mod sync;
23
mod transform;
24
25
pub use dmabuf::VulkanAllocator;
26
pub use error::{Error, device_lost};
27
pub use frame::{Clip, Effect, Transition, VulkanFrame};
28
pub use image::{VulkanImage, VulkanMapping, VulkanTarget, VulkanTexture};
29
pub use renderer::{DmabufImporter, ShmStager, StagedShm, VulkanRenderer};