Technology for running Windows PC games on Apple silicon Macs has so far developed around Wine-derived tools and various translation layers. The community-built "FX Steam Launcher" (repository name: steamac) takes a different approach: it boots the ARM64 version of SteamOS, which Valve developed for the Steam Frame, in a lightweight virtual machine (VM) on the Mac. Windows x86-64 games can then run from within SteamOS's Linux environment.

Its defining feature is the ability to choose the graphics translation path for each game. In addition to the established MoltenVK, it offers KosmicKrisp, which uses Metal 4, and DXMT, an experimental layer that translates Direct3D directly to Metal. However, the performance gains come with compatibility and security constraints, and not every Windows game will run.

AD

How SteamOS Runs on a Mac

FX Steam Launcher is a project independent of Valve and Apple. The distributed app has been code-signed and notarized by Apple, but that does not mean Apple guarantees its operation or safety.

Virtualization relies on macOS's Hypervisor.framework and libkrun, and the ARM64 SteamOS built for the Steam Frame runs inside it. FEX translates the CPU instructions of Windows x86-64 games, while DXVK and vkd3d-proton, included in Proton, convert DirectX rendering to Vulkan. The work is then passed to the macOS side through the virtio-gpu/Venus virtual GPU interface, where a host-side driver translates Vulkan to Apple's Metal. FEX and ARM64 Proton 11 are fetched automatically by the Steam client as needed.

The launcher does not bundle a SteamOS system image. During initial setup, it downloads a signed RAUC image of about 4.5GB from Valve's official servers, verifies the SHA-256 checksum and digital signature, and then creates a virtual disk. Users must agree to the SteamOS End User License Agreement (EULA) and the Steam Subscriber Agreement.

The app requires an Apple silicon Mac running macOS 15 or later, and the distributed DMG version does not require separately installing tools such as Docker. Building from source, however, requires Xcode 26 or later, Homebrew, rustup, and a container platform such as OrbStack.

Three Rendering Paths for Tuning Performance and Compatibility

FX Steam Launcher offers three rendering paths: MoltenVK, KosmicKrisp, and DXMT. Each differs in supported macOS versions, DirectX features, performance, and safety.

Rendering path Supported environment DirectX coverage Features and limitations
MoltenVK macOS 15 or later DirectX 9–11, DirectX 12 (feature level 11_0, shader model 6.0) Works in a wide range of environments, but DirectX 12 features are limited
KosmicKrisp macOS 26 or later. Bundled from version 1.7 onward and the default where supported DirectX 9–11, DirectX 12 (typically feature level 12_0, shader model 6.0) Uses Metal 4 and supports feature level 12_0. In principle, games requiring 12_1 or higher are not supported
DXMT (experimental) Tested on macOS 27. Added in version 1.9.2 or later Direct3D 10/11 only Translates Direct3D directly to Metal. Faster speeds are expected, but it weakens the VM's protective boundary

In the standard Vulkan path, users can switch between MoltenVK and KosmicKrisp in the settings screen. MoltenVK is based on a fork of UTM with custom patches applied, and works on macOS 15 or later. KosmicKrisp, meanwhile, is built on the Metal 4 implementation in Mesa, the open-source graphics driver collection, and incorporates unmerged fixes and custom patches.

KosmicKrisp's main advantage is that it uses Metal 4's sparse resource feature to support DirectX 12 feature level 12_0 and Tiled Resources Tier 2. In a typical configuration, however, supported shader models only go up to 6.0. Games that strictly require feature level 12_1 or shader model 6.6, such as titles using Unreal Engine 5, generally will not run. A per-game setting that reports higher-tier features on Macs meeting certain conditions, such as M2 or later, is available for Dragon's Dogma 2, but it does not guarantee correct operation.

DXMT, by contrast, translates Direct3D 10/11 directly to Metal, bypassing the DXVK, Venus, and host-side Vulkan driver translation steps. Titles using DXMT run on Proton 10.0, while games using DirectX 12 or native Vulkan keep the conventional rendering path. Cutting translation steps is expected to speed things up, but DXMT does not outperform DXVK in every game.

AD

Benchmarks Show Frame Rates Up to About 2.9x Higher

In the project's published test of the Stellar Blade Demo, a Mac with an M4 Max on the MoltenVK configuration reached 60 FPS at 1280×800. On an M1 Max running the same demo, the Metal HUD reading rose from about 18 FPS with MoltenVK to about 29 FPS with KosmicKrisp, according to the project.

The DXMT comparison was run on an M1 Max with macOS 27, 6 vCPUs, 8GB of VM memory, and a 120Hz display. On the Death's Door title screen (1280×800), the Proton 10/DXMT configuration reached about 117 FPS, versus about 41 FPS for Proton 11/DXVK.

plaintext
{
  "type": "bar",
  "title": "Rendering benchmark comparison on M1 Max",
  "unit": "FPS",
  "categories": ["Death's Door (title screen)", "d3d11bench (fill rate)", "d3d11bench (draw calls)"],
  "series": [
    { "name": "Proton 11 / DXVK", "values": [41, 44, 133] },
    { "name": "Proton 10 / DXVK", "values": [null, 50, 139] },
    { "name": "Proton 10 / DXMT", "values": [117, 100, 115] }
  ],
  "caption": "Figures published by the project. Measured on macOS 27, 6 vCPUs, 8GB RAM, 120Hz display",
  "source": "FX Steam Launcher official documentation"
}

In d3d11bench, a Direct3D 11 benchmark, DXMT scored 100 FPS in the fill-rate-focused test, well above DXVK's 44–50 FPS. In the draw-call-focused test, however, DXMT managed only 115 FPS, below DXVK's 133–139 FPS. Each test ran for 20 seconds, and the figures are medians of three runs on the Vulkan paths and six runs, with restarts in between, on the DXMT path.

These results show that DXMT's effect varies greatly with the type of rendering load. The roughly 117 FPS in Death's Door was also measured on the title screen and is capped by the 120Hz display, so it cannot be read as overall game performance rising 2.9x.

In fact, tech reviewer ETA Prime's testing on an M4 Max Mac found that The Witcher 3: Wild Hunt exceeded 70 FPS at 1080p and high settings, but trees failed to render correctly. Switching to MoltenVK did not fix it. The Stellar Blade Demo topped 70 FPS at 800p and high settings, and Fallout 4 hit 60 FPS at 1080p and medium settings, while titles such as DOOM Eternal, Marvel's Spider-Man: Miles Morales, and Ghost of Tsushima would not launch.

High frame rates, in other words, do not guarantee accurate or stable rendering. Games with kernel-level anti-cheat that refuses to start when it detects a virtual machine are generally unsupported.

The 16GB Memory Limit and DXMT's Security Risk

What determines FX Steam Launcher's practicality is Apple silicon's unified memory. On a Mac with 16GB of memory, 8GB is automatically allocated to the VM's main memory, 4GB to graphics, and 4GB as a reserve for the macOS host. As a result, demanding games are prone to running out of memory.

ETA Prime's testing on a 16GB Mac mini also showed heavy swapping and stuttering in demanding titles. Lightweight 2D and indie games run on 16GB, but 24GB or more is a realistic guideline for mid- to heavy-weight titles.

Switching graphics drivers also requires rebuilding the shader cache. According to the project, the first launch of the Stellar Blade Demo with KosmicKrisp on an M1 Max took about 28 minutes to compile shaders. During play, Metal pipeline creation can also cause brief stalls of roughly 50 to 100 milliseconds.

A further concern is DXMT's security risk. Normally, programs inside a VM are isolated from the host OS. With DXMT, however, the host-side executor that handles the guest's Metal calls is designed to fully trust the guest environment. This means a program on the guest side could potentially execute arbitrary code with the privileges of the logged-in macOS user, so the isolation expected of a typical VM is not maintained.

The developers are aware of the risk: DXMT is disabled by default, and users are advised to use it only with trusted games. The bundled DXMT configuration also does not support stream output. Anyone enabling DXMT for performance should understand these safety and feature limitations.

AD

Development Status and Setup Notes

FX Steam Launcher is updated continuously. Version 1.9.9 added recognition of the 2026 Steam Controller over Bluetooth LE and via the Puck. It also fixed an issue that restricted game processes to CPUs 0–4, so all assigned virtual CPUs can now be used. Fixes were also made for synchronization problems in 4K and high-refresh-rate environments and for crashes in some titles. These are, however, the developers' own announced changes and do not guarantee improvements in every environment.

Before installing, check your memory capacity and each game's API requirements. On macOS 26 or later, KosmicKrisp is the basic choice, while MoltenVK is used on older supported versions. Initial setup also requires about 20GB of free space, including the download cache. The virtual disk is a sparse file that grows with use, but this does not work on external drives formatted as exFAT. The standard setup wizard also limits SteamOS sources to the stable and release-candidate (rc) channels, excluding preview and beta for safety.

The project also publishes game performance statistics that users submit voluntarily, and a "My Mac" filter lets you view reports from setups similar to your own. However, FPS is measured from the VM's display output, and resolution, graphics quality, and play scenes are not standardized. Chip generations cannot be fully matched either, and recommended settings require reports from at least two users, so the data should be treated as a reference only.

The significance of FX Steam Launcher lies not in letting Windows games run fully on the Mac, but in building an environment that combines SteamOS with multiple rendering paths so performance and compatibility can be tuned title by title. For now, it is less a polished gaming setup for general users than an experimental tool for enthusiasts who understand API limitations and how virtualization works. Attention will turn to how far it can expand supported titles and improve rendering accuracy, memory efficiency, and safety.