flowchart TD
D["D3D12 draw
StartVertexLocation or BaseVertexLocation,
StartInstanceLocation"] --> M["Metal draw
baseVertex, baseInstance"]
H["HLSL (SM 6.8)
SV_StartVertexLocation,
SV_StartInstanceLocation"] --> X["dxil-spirv
BaseVertex, BaseInstance"]
X --> S["SPIRV-Cross
[[base_vertex]], [[base_instance]]"]
M --> S
S --> Q{"does the vertex shader
read the start instance?"}
Q -->|"no"| O["root offsets: baseInstance carries
the root block offset"]
Q -->|"yes"| P["baseInstance stays the
D3D12 start instance"]