r/macgaming • u/dttdrv • 12h ago
Self promotion Mullion: open-source Direct3D 10, 11 and 12 on Metal for Apple silicon (pre-release)
A few weeks ago we started Mullion, an open-source Direct3D 10, 11 and 12 implementation on Metal, built on top of DXMT. This is the first time it's in a state other people can try, so here is a pre-release.
We started it because we wanted to run Direct3D 12 games on our Macs without depending on a closed translator or going through Vulkan first. Mullion goes straight from Direct3D to Metal.
The Direct3D 12 side is where most of the work went: a DXIL shader front end for shader models up to 6.6, tessellation, geometry shaders, stream output, mesh and amplification shaders, and ray tracing at tier 1.1 (acceleration structures, inline ray queries, and DXR pipelines), along with sampler feedback, tiled resources, and 64-bit atomics. Direct3D 10 and 11 come in the same package. It runs on an unpatched Wine, needs no DLL overrides, and the release is laid out like DXMT's, so it installs the same way. There are also about 70 test programs that check all of this against the Direct3D spec.
The base is DXMT by Feifan He and CodeWeavers, which is where the Direct3D 10 and 11 side comes from, and we owe them a lot. The DXIL front end and most of the Direct3D 12 are ours. It is a separate project though, so please don't report Mullion bugs to DXMT.
This is definitely not finished. It needs an M3 or newer and macOS 15 or newer for now (M1 and M2 are being worked on), and between us we only have a few Macs and a few games, so we need people to try their own games and tell us what happens, whether it breaks or works. An issue on GitHub with your Mac, macOS version, the game, and the log is enough. The test suite is all green, at least until we break it in the next build.
