flowchart TD
A["D3D12: IASetVertexBuffers
address, SizeInBytes, stride per slot"] --> S["draw state: the views
(va, size, stride) x 20"]
P["CreateGraphicsPipelineState
input layout: slot, offset, format"] --> T["SPIRV-Cross MSL vertex function"]
T --> G["guard_vertex_fetches:
stage_in copied, each input checked"]
S -->|"upload, bind at buffer 28
(ExecuteIndirect: the record's own)"| M
G --> M["Metal vertex function"]
M --> I{"index x stride + offset + size
≤ view size?"}
I -->|yes| F["Metal's fetch"]
I -->|no| Z["0 in the format's components,
the rest of (0, 0, 0, 1)"]