Skip to main content

concinnity_render/vulkan/
pass_timing.rs

1//! Per-pass GPU timing on Vulkan via TIMESTAMP queries. The slot layout is the
2//! shared one ([`crate::pass_timing`]); this module only re-exports it so the
3//! backend keeps its `crate::vulkan::pass_timing` path.
4//!
5//! The start buffer resets the whole block and writes the whole-frame start;
6//! each per-pass command buffer writes its own pair around its encode; the end
7//! buffer writes the whole-frame end.
8//!
9//! Unlike D3D12 (which can pre-write every slot so a pass that did not run still
10//! reads a value), Vulkan forbids writing a timestamp to a query that is already
11//! written without an intervening reset. A pass absent from this frame's graph
12//! therefore leaves its reset-but-unwritten slots `unavailable`; the readback
13//! uses `WITH_AVAILABILITY` and reports 0 for any pair that is not both
14//! available.
15
16pub use crate::pass_timing::*;