flowchart TB A["ExecuteIndirect: argument buffer
per command: root args + DISPATCH_RAYS_DESC"] --> E["expand_indirect kernel
on the GPU, per command"] C["count buffer"] --> E T["host template:
function table, root buffers"] --> E E -- "copies the desc's 25 words" --> R["per-command record:
root block + mtl12_rt_dispatch"] E -- "W·H or W·H·D over 2^30" --> Z["0 threadgroups:
command dropped"] E -- "raygen size 0" --> N["raygen address 0:
rays call nothing"] R --> K["mtl12_dispatch_rays
ceil(W/8) × ceil(H/8) × D threadgroups"] K --> S["shader table walk
(raygen, miss, hit records)"]