Skip to content

Commit c810460

Browse files
committed
Mark macOS 14 as best-effort in CI and update Metal docs
macOS 14 builds succeed but MPS tests may OOM on runners with limited unified memory. Use continue-on-error so macos-14 failures don't block the workflow. Update Metal docs to reflect macOS 15+ as the supported baseline with macOS 14 best-effort. Co-developed-by: Claude Code v2.1.50 (claude-opus-4-6)
1 parent 18a1ae8 commit c810460

File tree

2 files changed

+19
-11
lines changed

2 files changed

+19
-11
lines changed

.github/workflows/build_kernel_macos.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,14 @@ jobs:
1717
include:
1818
- os: macos-14-xlarge
1919
xcode: "/Applications/Xcode_15.4.app"
20+
# macOS 14 is best-effort: builds work but MPS tests may OOM
21+
# on runners with limited unified memory.
22+
allow-failure: true
2023
- os: macos-15-xlarge
2124
xcode: "/Applications/Xcode_16.2.app"
2225
- os: macos-26-xlarge
2326
xcode: "/Applications/Xcode_26.0.app"
27+
continue-on-error: ${{ matrix.allow-failure || false }}
2428
steps:
2529
- name: "Select Xcode"
2630
run: sudo xcrun xcode-select -s ${{ matrix.xcode }}

docs/source/builder/metal.md

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,29 @@ Instructions on this page assume that you installed Nix with the
55

66
## Targeted macOS versions
77

8-
Since new macOS versions get [adopted quickly](https://telemetrydeck.com/survey/apple/macOS/versions/),
9-
we only support the latest major macOS version except for the first weeks
10-
after a release, when we also support the previous major version.
8+
Metal kernels are compiled with `-std=metal3.1` (AIR v26), which requires
9+
macOS 15 or later on ARM64 (Apple Silicon).
1110

12-
We currently support macOS 26.0 and later on ARM64 (Apple silicon).
11+
| macOS version | Support level |
12+
|---------------|---------------|
13+
| macOS 26+ | Fully supported and tested in CI |
14+
| macOS 15 | Fully supported and tested in CI |
15+
| macOS 14 | Best-effort (builds work, some tests may fail due to MPS memory limits) |
1316

1417
## Requirements
1518

1619
To build a Metal kernel, the following requirements must be met:
1720

18-
- Xcode 26.x must be available on the build machine.
19-
- `xcode-select -p` must point to the Xcode 26 installation, typically
21+
- An Xcode installation with the Metal compiler must be available. The build
22+
system automatically detects the Metal toolchain from available Xcode
23+
installations.
24+
- On macOS 26+, the Metal Toolchain is a separate download from Xcode:
25+
`xcodebuild -downloadComponent MetalToolchain`
26+
- On macOS 14/15, Metal ships bundled with Xcode (no separate install needed).
27+
- `xcode-select -p` must point to your Xcode installation, typically
2028
`/Applications/Xcode.app/Contents/Developer`. If this is not the case,
2129
you can set the path with:
2230
`sudo xcode-select -s /path/to/Xcode.app/Contents/Developer`
23-
- The Metal Toolchain must be installed. Starting with macOS 26, this is
24-
a separate download from Xcode. You can install it with:
25-
`xcodebuild -downloadComponent MetalToolchain`
2631
- The Nix sandbox should be set to `relaxed`, because the Nix derivation
2732
that builds the kernel must have access to Xcode and the Metal Toolchain.
2833
You can verify this by checking that `/etc/nix/nix.custom.conf` contains
@@ -47,8 +52,7 @@ Xcode 26.1
4752
Build version 17B55
4853
```
4954

50-
The reported version must be 26.0 or newer. Then you can validate that the
51-
Metal Toolchain is installed with:
55+
On macOS 26+, you can validate that the Metal Toolchain is installed with:
5256

5357
```bash
5458
$ xcodebuild -showComponent metalToolchain

0 commit comments

Comments
 (0)