Idea: a native macOS build (Apple silicon, x86-64 under Rosetta) with Vulkan on Metal through MoltenVK #420
Labels
No labels
area/accessibility
area/audio
area/input
area/install
area/menu
area/renderer
area/saves
area/upscaling
good first issue
gpu/amd
gpu/igpu
gpu/intel
gpu/nvidia
help wanted
kind
bug
kind
chore
kind
docs
kind
feature
kind
performance
kind
question
needs measurements
platform/linux
platform/steam-deck
platform/windows
preview
priority
critical
priority
high
priority
low
status
blocked
status
confirmed
status
duplicate
status
invalid
status
needs-info
status
wontfix
testing wanted
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/Longshot#420
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The idea
A native macOS build of Longshot: Apple silicon (arm64) first, x86-64 under Rosetta second, macOS 14.4 or later, with
Vulkan on Metal through MoltenVK 1.4.2. Same game data, same renderer and the same behaviour as Windows and Linux. It
should take no shortcuts: no capped features and no silent restrictions. The changes that only the Mac needs are kept
behind MoltenVK and Darwin checks, so the shader output on other platforms stays byte for byte the same.
Claimed by @mooki. Measured on an M4 Max (MoltenVK 1.4.2, macOS 26), native arm64 and x86-64 under Rosetta.
Score (docs/workflow.md): severity: no build exists for macOS. Reach: Mac players, a new platform. Confidence: high.
It builds and starts on the Mac today; the remaining work is measured, not guessed.
Where it stands (local branches, not pushed yet):
depend on the system libraries only, plus the packaged SDL3 and MoltenVK.
test_menu_i18n,which also fails on main) and 16 skipped.
all 38,809 shader programs in 11 s.
Metal compiler from many seconds to minutes. One crashed Apple's compiler service (
bad_alloc).Found and fixed on the Mac (each with a game-free test, and a GPU probe passing on both arm64 and Rosetta):
argument buffer). Those layouts use descriptor sets on MoltenVK.
fence between a read and a later atomic on the same texel.
to keep Metal's shader cache with the install.
Questions for the maintainers: the plan is one pull request per topic, opened as work in progress after this issue.
Any preference on order, or on whether to land the Darwin host layer first?
Anything else
Not tested yet: the title screen, input and play; a window (all runs so far are windowless); other Macs (M1-M3, Intel
Macs) and macOS 14 itself. The buffer-length, read-write-limit and image-read-ordering findings look worth reporting
to MoltenVK and SPIRV-Cross.