Repository navigation
Releases: metalsharp/MetalSharp-Wine
Release list
MetalSharp Wine 4.0
MetalSharp Wine 4.0 is Wine 11.20 as a native arm64 macOS app, with a FEX fork for x86_64 and 32-bit x86 Windows programs. It needs no Rosetta. It is the runtime of MetalSharp 1.0.0's Arm64 FEX build. This release converts D3D12 shaders with Apple's Metal Shader Converter on the VKD3D-Proton lane, adds trace logging to every graphics layer, and fixes several games' crashes and hangs.
What's new since 3.0
- VKD3D-Proton macOS 4.5 and Apple's Metal Shader Converter:
- Faster shader setup: the converter turns compute shaders, and pipelines of a vertex and a pixel shader, into Metal libraries directly, skipping the MSL front-end compile (0.4–1.7 s per large shader). It is used unmodified, under Apple's license.
METALSHARP_MSC=0turns it off;METALSHARP_MSC=computekeeps it to compute shaders. - SPIR-V where the converter can't be correct: shaders that a game's quirk tables change, and pixel shaders with wave operations (the converted code counts helper lanes, and their waterfall loops hung the GPU), stay on SPIR-V.
- Null descriptors read a zeroed buffer and texture.
- MoltenVK: residency sets count each allocation (Dragon's Dogma 2 faulted at its first submit), and RGB9E5 targets blend on Apple GPUs.
- SPIRV-Cross: vertex shaders that use wave operations convert.
- Five-game fixes: The Witcher 3's 17 GiB layered pass, Ghostrunner's tessellation-plus-geometry freeze, and memory growth in Red Dead Redemption 2 and God of War Ragnarök.
- Faster shader setup: the converter turns compute shaders, and pipelines of a vertex and a pixel shader, into Metal libraries directly, skipping the MSL front-end compile (0.4–1.7 s per large shader). It is used unmodified, under Apple's license.
- Mullion, merged with upstream Mullion:
- Dragon's Dogma 2 plays: a pixel shader's
WaveReadLaneFirstgives every lane the first non-helper lane's value. Its waterfall loops never ended, and the GPU hung at the title screen. - No GPU work after device removal: a removed device no longer commits GPU work.
- Faster encoding: queues encode on several threads again on Metal 3, and with Metal 4 where the system has it.
- Config file:
d3d11.metalSpatialUpscaleturns MetalFX upscaling on frommullion.conf. - Large texture buffers: views are clamped to Metal's limit (fixes Marvel's Spider-Man; antoninmuller, #3).
- Dragon's Dogma 2 plays: a pixel shader's
- Trace logging:
- Mullion:
MULLION_TRACE_<CATEGORY>=1orheavy, per category (gpu, sync, resource, memory, shader, present, pass, api, cpu). It logs to~/Library/Logs/Mullion/<exe>/mullion.log. - VKD3D-Proton and MoltenVK:
METALSHARP_TRACE=<category>[+heavy]. - Flight recorder: Mullion keeps one that names the module of a faulting address.
- Mullion:
- Wine:
.metalsharp/launch.env: a program's folder can carry its own environment, applied however the program is started (MetalSharp's per-game graphics routes)..metalsharp/launch-exeandlaunch-args: pick the executable and its arguments.\??\GLOBALROOTpaths resolve, which Arxan-protected games use to open their own image.FileAllocationInformationis implemented.WriteProcessMemorywrites into code pages on macOS (Trackmania's hook engine).- Other:
QueryWorkingSetExreads residency withmincore(), andNtRaiseHardErrorlogs its message.
- Offline setup: Wine Mono and FAudio ship as archives in
share/metalsharp/archives, and the default graphics config ismullion.conf.
Downloads
MetalSharp-Wine-4.0-arm64.zip: the signed and notarizedMetalSharp-Wine.app. It needs macOS 15 or later, and macOS 26.4 or later for 32-bit (i386) programs.metalsharp-wine-4.0-arm64.tar.xz: a relocatable folder (bin/wine). It is ad-hoc signed, so it runs x86_64 and ARM64 programs only.SHA256SUMS
What's in it
- CPU translation: ARM64 runs natively, x86_64 through FEX and ARM64EC (Wine's DLLs are ARM64X), and i386 through FEX and WoW64. TSO emulation and msync are on by default.
- Direct3D:
- Mullion (DXMT fork) on Metal is the default for D3D10/11/12.
- VKD3D-Proton macOS 4.5 (
GRAPHICS_BACKEND=vkd3d, with Apple's Metal Shader Converter) and DXVK-macOS 1.10.x (GRAPHICS_BACKEND=dxvk) are opt-in for x86_64 programs. GRAPHICS_BACKEND=wineselects wined3d.
- OpenGL: WineMetalGL 3.7.0 (OpenGL 4.6 on Metal) is the default.
OPENGL_BACKEND=wineselects Wine's own. - Vulkan: MoltenVK 1.4.3 (MetalSharp build, with persistent pipeline caches).
- Media: FFmpeg 8.0 and GStreamer 1.26.
- .NET and HTML: Wine Mono 11.3.0 and Wine Gecko 2.47.4.
- Shader compilers: Microsoft's DXC 1.9 and the ARM64
d3dcompiler_47.dllin every prefix.
Tested on the signed build
- CPU translation:
helloruns on all three architectures (ARM64 native, x86_64 through FEX, i386 through WoW64), and msync is active with no environment variables set. - OpenGL: OpenGL 4.6 through WineMetalGL 3.7.0 works on ARM64, x86_64 and i386.
- Vulkan: Vulkan through MoltenVK works on ARM64 and x86_64.
- D3D11: works on Mullion for x86_64 and i386.
- D3D12: works on Mullion, and on VKD3D-Proton with the Metal Shader Converter (x86_64).
- Games: Dragon's Dogma 2 runs on Mullion. Red Dead Redemption 2, God of War Ragnarök and PEAK were tested on 3.0's lanes, whose code is in this release. The VKD3D-Proton lane's Dragon's Dogma 2 fixes (v4.5) are new and not yet confirmed in game.
Source: main holds the build scripts, patches, docs and tests. The modified sources are on the source/wine, source/fex and source/winemetalgl branches. Mullion is developed at aaf2tbz/mullion and sent upstream to dttdrv/mullion (#70, #71). VKD3D-Proton and MoltenVK are developed at metalsharp/VKD3D-Proton-MacOS (v4.5), and DXVK-macOS at metalsharp/DXVK-macOS-1.10. Apple's libmetalirconverter.dylib ships unmodified under its own license (see PROVENANCE).
MetalSharp Wine 3.0
MetalSharp Wine 3.0 is Wine 11.20 as a native arm64 macOS app with a FEX fork for x86_64 and 32-bit x86 Windows programs. It needs no Rosetta. This release makes games run faster and more reliably: Red Dead Redemption 2 now loads and plays, and D3D12 games run up to half again as fast. This also fixes the signing issue with 2.0 where it would crash.
What's new since 2.0
- TSO emulation and msync are on by default. FEX now runs x86 code with its TSO emulation (ordered loads and stores; no Rosetta or hardware TSO needed), because some games hand work between threads with plain stores and lose it without x86's memory ordering. Red Dead Redemption 2's job system hung without it. msync (shared-memory synchronization) is on by default too.
FEX_TSOENABLED=0andWINEMSYNC=0turn them off. - Mullion: fewer render pass ends, overlapping passes, cheaper draws. Barriers end a render pass only for its own attachments; clears fold into later passes; copies run ahead of the render pass; passes overlap on the GPU; and per-draw state costs less CPU (
MULLION_D3D12_PASS_OVERLAP=0andMULLION_D3D12_HOIST_COPIES=0turn the riskier parts off). Render-target-only heaps are private. - VKD3D-Proton macOS 3.0 and MoltenVK: read-only buffer transitions keep the render pass, descriptor copies and root data per draw are batched, upload copies run ahead of the command list, table CBVs use Metal's constant-buffer path, and MoltenVK no longer restarts render passes for indirect-count draws or re-sends unchanged descriptor sets and push constants. SPIRV-Cross fixes let Red Dead Redemption 2's pipelines build.
- Wine:
LockFileExon a handle bound to a completion port now posts the completion when the lock is granted at once (Red Dead Redemption 2's file streaming waited for it forever). - FEX: 32-bit programs run x87 in reduced (double) precision by default, as under Rosetta (fixes Ori and the Blind Forest's FMOD audio stutter;
FEX_X87REDUCEDPRECISION=0opts out); call-ret stack invalidation also decommits non-resident pages; offline telemetry is off. - WineMetalGL 3.7.0, with its arm64 Wine module upstream.
- The inner loader has its own bundle (
lib/wine/aarch64-unix/wine.app) carrying the provisioning profile, so macOS no longer kills it for its cross-architecture entitlement (#2). The app has its own icon. - New backends since 2.0: VKD3D-Proton (
GRAPHICS_BACKEND=vkd3d, D3D12 on MoltenVK) and DXVK-macOS 1.10.x (GRAPHICS_BACKEND=dxvk, D3D9/10/11), both built as ARM64X for x86_64 programs; Microsoft's DXC andd3dcompiler_47in every prefix; WFDXCompat's launcher companion for the Rockstar Games Launcher;HideWineExportsfor programs that refuse to run under Wine.
Measured on an M4 MacBook Air: Red Dead Redemption 2 20 → ~30 fps (Mullion), God of War Ragnarök a steady 30 fps without stutter on Mullion and 25–30 → 40 fps (its frame limit) on VKD3D-Proton, PEAK's mountain view 35 → 55 fps (Mullion).
Downloads
MetalSharp-Wine-3.0-arm64.zip: the signed and notarizedMetalSharp-Wine.app. It needs macOS 15 or later, and macOS 26.4 or later for 32-bit (i386) programs.metalsharp-wine-3.0-arm64.tar.xz: a relocatable folder (bin/wine). It is ad-hoc signed, so it runs x86_64 and ARM64 programs only.SHA256SUMS
What's in it
- CPU translation: ARM64 runs natively, x86_64 through FEX and ARM64EC (Wine's DLLs are ARM64X), and i386 through FEX and WoW64. In the signed app, i386 has the low 4 GB and 4K pages.
- Direct3D: Mullion (DXMT fork) on Metal is the default for D3D10/11/12. VKD3D-Proton macOS 3.0 (
GRAPHICS_BACKEND=vkd3d) and DXVK-macOS 1.10.x (GRAPHICS_BACKEND=dxvk) are opt-in for x86_64 programs.GRAPHICS_BACKEND=wineselects wined3d. - OpenGL: WineMetalGL 3.7.0 (OpenGL 4.6 on Metal) is the default.
OPENGL_BACKEND=wineselects Wine's own. - Vulkan: MoltenVK 1.4.3 (MetalSharp build, with persistent pipeline caches).
- Media: FFmpeg 8.0 and GStreamer 1.26. .NET and HTML: Wine Mono 11.3.0 and Wine Gecko 2.47.4.
- Compatibility: WineForge's launcher and compatibility work, the native Steam bridge, native macOS fullscreen and GCMouse raw input; Chromium/CEF windows paint correctly.
- Fonts, tools and payloads: metric-compatible Arial/Times New Roman/Courier New in every prefix, CJK families mapped to macOS fonts, innoextract and cabextract, and the MetalSharp app payloads in
share/metalsharp/.
Tested on the signed build
helloon all three architectures (ARM64 native, x86_64 through FEX, i386 through WoW64).- OpenGL 4.6 through WineMetalGL 3.7.0 on ARM64, x86_64 and i386, and Vulkan through MoltenVK.
- TSO emulation and msync active with no environment variables set.
- PEAK in D3D12 on Mullion, on the signed app with default settings.
- On the same components before packaging: Red Dead Redemption 2 (Mullion), God of War Ragnarök (Mullion and VKD3D-Proton) and PEAK (Mullion and VKD3D-Proton), all loading and playing.
Source: main holds the build scripts, patches, docs and tests. The modified sources are on the source/wine, source/fex and source/winemetalgl branches; Mullion is developed at aaf2tbz/mullion (sent upstream to dttdrv/mullion), VKD3D-Proton and MoltenVK at metalsharp/VKD3D-Proton-MacOS, and DXVK-macOS at metalsharp/DXVK-macOS-1.10.
MetalSharp Wine's own material is AGPL-3.0. Wine and the Wine changes are LGPL-2.1+, FEX is MIT, and every bundled component's license is in share/licenses/.
MetalSharp Wine 2.0
MetalSharp Wine 2.0 is a new build from the ground up. It is Wine 11.20 built as a native arm64 macOS app, with a FEX fork that runs x86_64 and 32-bit x86 Windows programs. It needs no Rosetta and no hardware TSO.
Downloads
MetalSharp-Wine-2.0-arm64.zip: the signed and notarizedMetalSharp-Wine.app. It needs macOS 15 or later, and macOS 26.4 or later for 32-bit (i386) programs.metalsharp-wine-2.0-arm64.tar.xz: a relocatable folder (bin/wine). It is ad-hoc signed, so it runs x86_64 and ARM64 programs only.SHA256SUMS
What's in it
- CPU translation: ARM64 runs natively, x86_64 through FEX and ARM64EC (Wine's DLLs are ARM64X), and i386 through FEX and WoW64. In the signed app, i386 has the low 4 GB and 4K pages.
- Direct3D:
- Mullion (DXMT fork) on Metal is the default for D3D10/11/12.
- DXVK 1.10.3 for macOS is opt-in for x86_64 programs (
GRAPHICS_BACKEND=dxvk). GRAPHICS_BACKEND=wineselects wined3d.
- OpenGL: WineMetalGL 3.6.0 (OpenGL 4.6 on Metal) is the default.
OPENGL_BACKEND=wineselects Wine's own. - Vulkan: MoltenVK 1.4.3.
- Media: FFmpeg 8.0 and GStreamer 1.26.
- .NET and HTML: Wine Mono 11.3.0 and Wine Gecko 2.47.4.
- Sync: msync (
WINEMSYNC=1). - Compatibility:
- WineForge's launcher and compatibility work, the native Steam bridge, native fullscreen and GCMouse.
- Chromium/CEF browser windows paint correctly (
--in-process-gpuis applied automatically).
- Fonts:
- Arial, Times New Roman and Courier New files in every prefix (metric-compatible, renamed Liberation), for programs such as Unity that load fonts by file name.
- The Chinese, Japanese and Korean Windows font families are mapped to the macOS system fonts.
- Tools: innoextract 1.9 and cabextract 1.11.
- MetalSharp app payloads in
share/metalsharp/: Goldberg, the Steam installer and wrapper, FNA/XNA, fnalibs, the FNA kickstart, Unity Mono runtimes, SDL3, shims, Terraria launchers, CEF hooks,dxmt.conf, compat rules, the host runtime, and Microsoft's unmodified VC++ 2015-2022 and core-fonts installers.
Tested on the signed build:
helloon all three architectures.- D3D9/11/12, OpenGL 4.6 and Vulkan.
- DXVK.
- FFmpeg decode through Media Foundation.
- Java 8: x64 and i386 JIT.
- MSI install and uninstall: x64 and x86.
- CEF 109, including store.steampowered.com.
- WebView2 149, with SwiftShader flags.
- Steam, and a Unity game (Moonscraper) on Mullion.
Source: main holds the build scripts, patches, docs and tests. The modified sources are on the source/wine, source/fex and source/winemetalgl branches. Mullion is developed at aaf2tbz/mullion and sent upstream as pull requests. The previous (VKMT) history is on legacy-1.x.
MetalSharp Wine's own material is AGPL-3.0. Wine and the Wine changes are LGPL-2.1+, FEX is MIT, and every bundled component's license is in share/licenses/.
VKMT 1.0
VKMT Wine 1.0
Apple-Silicon-native, cross-architecture Wine for macOS. The host boundary is ARM64; native ARM64/ARM64EC guests run directly, while FEX xtajit64 and xtajit provide the x86_64 and i386/WoW64 routes.
Install
On Apple Silicon macOS, install zstd, download the installer below, and choose an internal or external target volume:
brew install zstd
curl -fL -o install-vkmt-runtime.sh \
https://github.com/metalsharp/VKMT-Wine/releases/download/VKMT-1.0/install-metalsharp-wine-runtime.sh
chmod +x install-vkmt-runtime.sh
./install-vkmt-runtime.sh --target "$HOME/.local/share/vkmt-runtime"The installer downloads/reassembles four verified runtime parts and the native ARM64 GOG support archive, then installs transactionally. Keep WINEPREFIX outside the runtime; see Quick Start.
Production launch defaults disable Wine/FEX profiling, Vulkan call tracing, and Metal capture. All FEX/XTajit variants remain included.
Documentation
- Architecture
- Complete runtime inventory
- Packaging and validation
- Third-party licenses
- Security policy
VKMT-authored material is MIT licensed; bundled components retain their own licenses.