Skip to content

project: enable DirectX acceleration on iOS - #7809

Merged
osy merged 4 commits into
mainfrom
dev/neptune-ios
Aug 5, 2026
Merged

project: enable DirectX acceleration on iOS#7809
osy merged 4 commits into
mainfrom
dev/neptune-ios

Conversation

@osy

@osy osy commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Enables the DXMT DirectX-to-Metal backend on iOS, which was previously macOS
only.

  • QEMU: the high PCIe MMIO window was silently disabled whenever it did not
    fit in the guest physical address space, leaving nowhere to place a 64-bit BAR
    too large for the 32-bit window. On a host with a small IPA space (36-bit) that
    made hostmem=8G unusable, which is why iOS was stuck on a 256M fallback. The
    window now shrinks to the largest power of two that fits (down to 1G) and warns
    instead of vanishing, so iOS can use the same hostmem=8G as macOS.
  • Build: DXMT is now built for the iOS and visionOS sysroots, and
    dxmt-native.framework is embedded in the iOS and UTM SE targets. The DirectX
    backends are loaded at runtime rather than linked, so they moved to embed-only
    and an older device never touches them. A small LLVM 15 patch is included
    because its CMake gates Mach-O linker behavior on CMAKE_SYSTEM_NAME MATCHES "Darwin", which is false when cross-compiling for iOS.
  • Deployment target: reverts the minimum version bump that came with the
    original DXMT work. DXMT needs iOS 16 / macOS 13, but that is now handled with
    @available checks at the few places that load it, so UTM keeps supporting
    iOS 14 and macOS 11.3.

Testing: Tested by a human on iOS 16.3.1 and macOS 15.6. The author
acknowledges that this change has been tested and/or reviewed by a human in
accordance with UTM's AI contribution guidelines.

osy added 4 commits August 4, 2026 07:21
We can selectively support DXMT on macOS 13, iOS 16 and so we can revert
the minver bump.
Otherwise the checks won't kick in on a jailbroken device.
@osy
osy force-pushed the dev/neptune-ios branch from a90c2ee to ea24d5e Compare August 5, 2026 06:07
@osy
osy merged commit 8e4de50 into main Aug 5, 2026
54 checks passed
@osy
osy deleted the dev/neptune-ios branch August 5, 2026 07:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant