found in translation —

New DirectX 12-to-Metal translation could bring a world of Windows games to macOS

CrossOver announces early, case-by-case support for Windows' current gaming API.

This <em>Diablo II Resurrected</em> screenshot looks pretty unremarkable until you zoom into the top-right and see that it's running on an Apple M2.
Enlarge / This Diablo II Resurrected screenshot looks pretty unremarkable until you zoom into the top-right and see that it's running on an Apple M2.
CodeWeavers

Apple has made a tiny bit of progress in the last year when it comes to getting games running on Macs—titles like Resident Evil Village and a recent No Man's Sky port don't exactly make the Mac a gaming destination, but they're bigger releases than Mac users are normally accustomed to.

For getting the vast majority of PC gaming titles running, though, the most promising solution would be a Steam Deck-esque software layer that translates Microsoft's DirectX 12 API into something compatible with Apple's proprietary Metal API. Preliminary support for that kind of translation will be coming to CodeWeavers' CrossOver software this summer, the company announced in a blog post late last week.

CrossOver is a software package that promises to run Windows apps and games under macOS and Linux without requiring a full virtualized (or emulated) Windows installation. Its developers announced that they were working on DirectX 12 support in late 2021, and now they have a sample screenshot of Diablo II Resurrected running on an Apple M2 chip. This early DirectX12 support will ship with CrossOver version 23 "later this summer."

The announcement is simultaneously promising and caveat-filled; getting this single game running required fixing multiple game-specific bugs in upstream software projects. Support will need to be added on a game-by-game basis, at least at first.

"Our team’s investigations concluded that there was no single magic key that unlocked DirectX 12 support on macOS," CodeWeavers project manager Meredith Johnson wrote in the blog post. "To get just Diablo II Resurrected running, we had to fix a multitude of bugs involving MoltenVK and SPIRV-Cross. We anticipate that this will be the case for other DirectX 12 games: we will need to add support on a per-title basis, and each game will likely involve multiple bugs."

In other words, don't expect Steam Deck-esque levels of compatibility with Windows games just yet. There are also still gameplay bugs even in Diablo II Resurrected, though "the fact that it’s running at all is a huge win."

API translation layers have become increasingly visible and important in recent years as competing low-level APIs with the same basic goals and features have proliferated and as older APIs have aged past the point where it makes sense to spend time maintaining and improving a native implementation. Valve's Proton compatibility layer is actually a big bundle of different technologies that translate DirectX 9, 10, 11, and 12 API calls into Vulkan ones. Intel is using Microsoft-created DirectX 9-to-12 translation to improve the performance of old games on its Arc graphics cards. The MoltenVK Vulkan-to-Metal translation layer is also used in many prominent software projects, like Google's Android emulator for developers working in macOS and the Dolphin GameCube and Wii emulator.

Channel Ars Technica