Repository navigation
Conversation
D3DMetal requires Apple silicon. On an Intel Mac its DXGIFactory checks for Apple silicon, shows an alert and exits, so with the DirectX driver left at Default (which picks D3DMetal whenever it is bundled), the render server workers for every guest D3D context die and the Windows desktop never renders. canRunD3DMetal returned true for every x86_64 build. On x86_64, only allow D3DMetal when the process is translated by Rosetta (sysctl.proc_translated), that is when an x86_64 build runs on Apple silicon. Intel Macs then fall back to DXMT, as they already do when D3DMetal is not bundled. Resolves: utmapp#8040 Assisted-by: Claude:claude-opus-5-5
nightness
force-pushed
the
macos/intel-dxmt-default
branch
from
November 3, 2026 20:48
86a7267 to
d80c19a
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
D3DMetal requires Apple silicon. On an Intel Mac its
DXGIFactorychecks for Apple silicon, shows an alert and exits. With the DirectX driver left at Default, which picks D3DMetal wheneverD3DMetal.frameworkis bundled, the render server worker for every guest D3D context dies, and the Windows desktop never renders through Neptune.canRunD3DMetalreturnedtruefor every x86_64 build.On x86_64, D3DMetal is now allowed only when the process is translated by Rosetta (
sysctl.proc_translated == 1), which means an x86_64 build running on Apple silicon. Intel Macs fall back to DXMT, as they already do when D3DMetal is not bundled. The Settings picker uses the same check, so it no longer offers D3DMetal on Intel.This touches the x86_64 branch of
canRunD3DMetal. #8018 changes the arm64 branch of the same function; the two don't overlap in behavior.Resolves #8040
Related: #8041, utmapp/qemu#17, utmapp/dxmt#1, utmapp/dxmt#2
Testing: Tested by a human on MacBook Pro 2017 (Intel Core i7-7700HQ, Radeon Pro 560), macOS 15.8.1 (OpenCore Legacy Patcher), with an x86_64 build (with #8041 applied so GPU acceleration works unsigned),
D3DMetal.frameworkbundled, the DirectX driver at Default, and a Windows 11 x64 guest (viogpu3d v0.5).NPT_BACKEND=d3dmetal, every render server worker exited right afternpt: Neptune renderer initialized(worker … exited with status 16777215), and the guest display stalled.npt: loaded D3D11 library: …/dxmt-native.framework/…), contexts and rings are created, and the desktop composites at 1440x900.The author acknowledges that this change has been tested and/or reviewed by a human in accordance with UTM's AI contribution guidelines.