Skip to main content

Module vulkan

Module vulkan 

Source
Expand description

GPU-free, CPU-side pieces of the Vulkan backend: the repr(C) uniform structs mirrored in the GLSL shaders (std140/std430 layouts) and the per-pass GPU-timing slot arithmetic. The blocks every backend shares live in crate::uniforms. None of these touch a Vulkan device or command buffer, and they are unit-tested without a GPU. They live in concinnity-render (not the excluded concinnity-device crate) and are compiled unconditionally, so their layout tests run on every platform’s CI and count toward coverage. The Vulkan backend re-exports them under vulkan so it keeps its existing pass_timing / uniforms paths.

Modules§

pass_timing
Per-pass GPU timing on Vulkan via TIMESTAMP queries. The query pool holds one per-frame block of SLOTS_PER_FRAME slots; the whole-frame timer lives in slots [0, 1] of each block and one (start, end) pair per PassId follows (start at slot 2 + 2i, end at slot 3 + 2i). Mirrors directx/pass_timing.rs.
uniforms
repr(C) uniform / push-constant structs only the Vulkan frame encoders bind (std140 / std430 / push-constant layouts). Each is mirrored field-for-field in a .glsl/.vert/.frag/.comp shader under vulkan/shaders/, or in the one .slang block Vulkan alone declares.