1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// src/uniforms/
//
// The `#[repr(C)]` blocks the CPU uploads into a single-source `.slang` shader,
// declared once for every backend.
//
// These used to be declared per backend, in `metal/uniforms.rs`,
// `vulkan/uniforms.rs` and `directx/uniforms.rs`, from the days when each
// backend had its own shader source and its own idea of the layout. The
// single-source migration collapsed the shader side to one declaration, and
// `shader_layout` in concinnity-device then proved the CPU sides byte-identical
// on all three targets -- so a second and third copy could only ever drift.
//
// What stays per backend is what is genuinely per backend: a block only one
// host binds (Vulkan's combined `GbModelPush`, Metal's `ModelUniforms`), or one
// whose shader is still hand-written per backend (the cull kernel, the legacy
// per-draw morph kernel, the raymarch templates, Metal's water).
//
// Binding slots are not part of these declarations: the same block lands at a
// different index on each backend, so where it binds belongs to the backend
// that binds it. The one exception is called out on `ViewUniforms`, whose Metal
// slot and field names are a published contract for world-authored shaders.
pub use BINDLESS_POOL_SIZE;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;