flowchart TD
A["D3D12 draw with a
geometry shader"] --> B["1. vertex shader, drawn as points
rasterization off
writes vertex records"]
B --> C["barrier vertex → object"]
C --> D["2. geometry shader as object function
one thread per primitive × GS instance
fixed slots: maxvertexcount records"]
D --> E["index slots prefilled 0xFFFFFFFF
RestartStrip writes a restart"]
E --> F["barrier object → vertex"]
F --> G["3. indexed strip draw over all slots
mtl12_gs_vertex returns records[id]
restart index cuts the strip"]
G --> H["fragment shader,
render_target_array_index
relative to the RTV's first slice"]