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_FRAMEslots; the whole-frame timer lives in slots [0, 1] of each block and one (start, end) pair perPassIdfollows (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/.compshader undervulkan/shaders/, or in the one.slangblock Vulkan alone declares.