flowchart TD A["Create*PipelineState"] --> K["key: SHA-256 of build UUID, shader bytecode,
root signature, static samplers, input layout, fixed-function state"] K --> L{"entry in
~/Library/Caches/mtl12/<build>/<key>?"} L -- "hit" --> R["restore MSL and translation outputs"] L -- "miss" --> T["translate: DXIL → SPIR-V → MSL
(about 70% of a warm pipeline)"] T --> S["store entry
(temp file, then rename)"] S --> M R --> M["Metal: MSL → AIR, pipeline state
(Metal's own disk cache)"]