flowchart LR game["Windows game
(D3D12, DXIL shaders)"] --> wine["Wine"] wine --> A["A: my D3D12 layer
directly on Metal 4"] wine --> B["B: vkd3d-proton
on Vulkan"] wine --> C["C: my D3D12 layer +
open shader translators"] A --> metal["Metal 4 on Apple Silicon"] B --> vk["MoltenVK / KosmicKrisp
(Vulkan on Metal)"] --> metal C --> metal A -.- rA["spike A: 1M-entry descriptor heap,
0 mismatches in 4.2M reads ✔"] B -.- rB["spike B: no device,
transform feedback missing ✘"] C -.- rC["spike C: 596/760 shaders
accepted by Metal ✔"]