The short answer
These are the rules Harbor itself uses when it recommends a renderer for a game:
| The game uses | 64-bit game | 32-bit game |
|---|---|---|
| DirectX 12 | D3DMetal | Wine's own (none of the fast renderers covers it) |
| DirectX 10 or 11 | DXMT, or D3DMetal if a game misbehaves | DXVK |
| DirectX 9 | Wine's own; DXVK is faster in some games | |
| DirectX 8 or older, OpenGL | Wine's own | |
| Vulkan | Any: Vulkan games run on MoltenVK whichever renderer the bottle uses | |
Most current Windows games are 64-bit DirectX 11 or 12, so in practice the choice is usually between DXMT and D3DMetal.
What a renderer does
Wine lets a Mac run Windows programs, but a game's graphics calls still need somewhere to go. A renderer takes the game's Direct3D calls and turns them into something macOS can draw. The renderers differ in how many steps that takes:
- DXMT and D3DMetal translate Direct3D to Metal in one step.
- DXVK translates Direct3D to Vulkan, and MoltenVK then translates Vulkan to Metal: two steps.
- Wine's own Direct3D (wined3d) translates to OpenGL, which macOS still runs but Apple deprecated in 2018.
DXMT
DXMT is an open-source project that translates DirectX 10 and 11 straight to Metal. It is Harbor's first choice for 64-bit DirectX 11 games, the largest group of current Windows games.
- 64-bit programs only. In a DXMT bottle, 32-bit programs, such as some launchers, keep using Wine's own Direct3D.
- Tested most: Assassin's Creed III Remastered plays through missions at about 60 fps on DXMT on an M4 Pro. Harbor adds a small fix for a Metal crash that game hit, so it runs without workarounds.
- MetalFX upscaling is available in DXMT bottles: the game renders at a lower resolution and MetalFX scales it up 2×, which helps in demanding games.
D3DMetal
D3DMetal is Apple's own translation, from its Game Porting Toolkit. It covers DirectX 11 and 12, so it is the renderer for DirectX 12 games.
- 64-bit programs only, like DXMT. 32-bit programs in a D3DMetal bottle use Wine's own Direct3D.
- New Steam and EA app bottles start on D3DMetal, because it covers both DirectX 11 and 12. Once you install a game, Harbor recommends a renderer for that game.
- It is not open source. Apple allows it to be passed on only unchanged and for non-commercial purposes, so Harbor downloads Apple's files as they are and stays free. See what Harbor downloads, and from whom.
DXVK
DXVK translates DirectX 9, 10 and 11 to Vulkan, and MoltenVK runs that Vulkan on Metal. Harbor uses DXVK for macOS for DirectX 10 and 11, and D9VK for DirectX 9.
- 32-bit and 64-bit programs. That makes it the only fast option for 32-bit DirectX 10 and 11 games.
- Two translation steps instead of one, so for 64-bit DirectX 11 games DXMT is usually the better start.
- Not for Ubisoft Connect bottles. DXVK also takes over Connect's 32-bit sign-in browser, and Ubisoft's sign-in is known to work only while that browser stays on Wine's own Direct3D. See the Ubisoft Connect guide.
Wine's own Direct3D (wined3d)
Wine's built-in Direct3D covers Direct3D 1 to 11 over OpenGL. It has the widest compatibility and is the slowest for modern games.
- Harbor's choice for DirectX 9 and older games, OpenGL games, and programs whose graphics Harbor can't identify.
- It is also what 32-bit programs use inside DXMT and D3DMetal bottles, which is why Ubisoft Connect's sign-in works there.
How Harbor chooses for you
When you add or install a game, Harbor reads its program files to see which DirectX version it uses and whether it is 32-bit or 64-bit, then applies the rules in the table above. You'll see the recommendation, with the reason, in the bottle's Graphics section and next to the game in the library.
The renderer applies to a whole bottle. If two games in one launcher want different renderers, give one of them a bottle of its own.
Switch and compare
- Play a while on the recommended renderer. Harbor records every session you start from its library: average and low frame rate, GPU time per frame, and the delay to the screen.
- Switch. Pick another renderer in the bottle's Graphics section, or use the Not tried yet buttons in the game's Performance panel.
- Play the same part again and compare the numbers side by side in the Performance panel.
If a game crashes or shows a black screen, trying the other renderer that Harbor lists for it is the first thing to do.
MetalFX and DLSS
MetalFX upscaling (in DXMT bottles) lets a game render fewer pixels and scales the image up with Apple's MetalFX, for a higher frame rate at a small cost in sharpness.
DLSS (in DXMT and D3DMetal bottles) lets games that support NVIDIA's DLSS use MetalFX in its place. This is new: Harbor has checked it with Steam's interface, but not yet in a game.
Questions
Is DXMT better than D3DMetal?
For 64-bit DirectX 10 and 11 games, DXMT is usually the first choice, and it is the renderer Harbor has tested most. D3DMetal is the one for DirectX 12 games, and the one to try when a DirectX 11 game misbehaves on DXMT.
Does DXVK work on a Mac?
Yes, through MoltenVK, which runs Vulkan on Metal. Harbor uses DXVK for macOS for DirectX 10 and 11 and D9VK for DirectX 9. It is the fast option for 32-bit games, which DXMT and D3DMetal don't cover.
Can a Mac run DirectX 12 games?
That is what D3DMetal, Apple's translation from the Game Porting Toolkit, is for, and Harbor picks it for 64-bit DirectX 12 games. How well a particular game runs depends on the game; Harbor hasn't tested a DirectX 12 game in depth yet. Games with kernel-level anti-cheat don't run under Wine at all, whichever renderer you choose.
Which renderer is best for older games?
Wine's own Direct3D for DirectX 9 and older; it is the most compatible. Some DirectX 9 games run faster on DXVK, so it is worth comparing the two.
Next: Steam on Mac · Ubisoft Connect on Mac · the EA app on Mac · FAQ