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