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"]