Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
2cdc4d2
Add optional installer-time Graphics AutoPkg build
b00t0x Oct 27, 2026
6086f55
Merge Graphics 0.3.2 into installer AutoPkg candidate
b00t0x Oct 28, 2026
1a1c54d
Fix AutoPkg payload selection and Installer restart handling
b00t0x Oct 28, 2026
35391d1
Build one universal AutoPkg with runtime OS asset selection
b00t0x Oct 28, 2026
0d46dfb
docs: correct receipt expectations for script-only AutoPkg
b00t0x Oct 28, 2026
673392d
Add USB-C capable Compat to Graphics payloads
b00t0x Nov 1, 2026
7a7a46e
Update Compat for complete Alder and Raptor Lake mobile ID coverage
b00t0x Nov 1, 2026
5c838aa
Match all supported GPU IDs in framebuffer and accelerator payloads
b00t0x Nov 1, 2026
ab7d697
Extend GL video and OpenCL admission to all supported mobile IDs
b00t0x Nov 1, 2026
3d8fae8
Preserve explicit nested code requirements in GL and VA bundles
b00t0x Nov 1, 2026
985e1f9
Include all Tiger Lake GT2 IDs in kernel and userspace payloads
b00t0x Nov 1, 2026
0577c07
Remove servicing build gates across Metal and VA payloads
b00t0x Nov 1, 2026
b08178a
Use dyld cache bounds for imported descriptor classification
b00t0x Nov 1, 2026
e8cc3b0
Merge current device payloads with servicing adapters and rebuild sha…
b00t0x Nov 1, 2026
e98fd8f
Resolve descriptor dependency within the Metal bundle on cold load
b00t0x Nov 2, 2026
956a3cc
Prepare Graphics 0.4.0 with updated Compat and concise installation g…
b00t0x Nov 2, 2026
ea19265
Ship AutoPkg release assets and simplify installation documentation
b00t0x Nov 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,17 @@ jobs:
run: python3 tools/build.py --tag "$RELEASE_TAG"
- name: Verify signatures, payloads and version selection
run: python3 tools/test.py dist/WhateverXe-Graphics-*.pkg
- name: Build and verify automatic-installation pkg
run: |
python3 tools/build.py --autopkg
python3 tools/test.py dist/autopkg/AutoPkg-Assets.pkg
- uses: actions/upload-artifact@v4
with:
name: AutoPkg-Assets
path: |
dist/autopkg/AutoPkg-Assets.pkg
dist/autopkg/SHA256SUMS
if-no-files-found: error
- uses: actions/upload-artifact@v4
with:
name: Packages
Expand All @@ -67,6 +78,10 @@ jobs:
with:
name: Packages
path: dist
- uses: actions/download-artifact@v4
with:
name: AutoPkg-Assets
path: dist/autopkg
- name: Upload release assets
env:
GH_TOKEN: ${{ github.token }}
Expand All @@ -75,6 +90,8 @@ jobs:
run: |
python3 tools/release_notes.py "$RELEASE_TAG" > release-notes.md
cd dist
cp autopkg/AutoPkg-Assets.pkg .
cat autopkg/SHA256SUMS >> SHA256SUMS
sha256sum -c SHA256SUMS
if gh release view "$RELEASE_TAG" --json isDraft --jq .isDraft > release-state; then
test "$(cat release-state)" = true
Expand Down
12 changes: 8 additions & 4 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,16 @@ Keep maintainer release procedures, unpublished implementation plans,
release-preparation status, internal validation progress, host details and test
captures outside this repository, including while the repository is private.

README describes the current state, not release-by-release changes. Recommend
README describes the current state, not release-by-release changes. Keep it concise;
installation uses released packages, not build scripts. Recommend
latest component releases instead of accumulating per-version dependency tables.
Use GPU family names rather than internal display-generation labels in README
prose. CHANGELOG describes the affected behavior and OS range; applications used
for validation are not the scope of a general fix. Credit reference repositories
when their work informed a change.

Build: python3 tools/build.py
Test: python3 tools/test.py dist/WhateverXe-Graphics-0.3.1.pkg
Test: python3 tools/test.py dist/WhateverXe-Graphics-0.4.0.pkg

Dependency checks must pass before packaging and against the extracted pkg for
every supported OS. Signature/hash checks do not establish dependency compatibility.
Expand All @@ -30,14 +31,17 @@ Preserve signed payloads exactly unless deliberately updating and requalifying
an asset. Never sign original Apple compiler backends again. Keep signed bundles
whole. No keys, credentials, Apple original input caches or generated packages
in Git. The checked-in final payloads are an explicit binary exception.
Installer scripts use standard payloads and AuxKC; do not add custom backup,
The normal installer uses standard payloads and AuxKC. AutoPkg may select and
copy private script resources during first boot; its --nopayload component leaves
no package receipt and uses the same AuxKC function. Do not add custom backup,
manifest, hash-store or uninstall infrastructure to the installed system.
Release versioning is independent from WEX. Use source commits for provenance,
not a floating dependency on another repository's main branch. Build TGLCompat
from one WEX commit for every OS; keep the single build in Common. If ABI
differences require multiple outputs, build all variants from that same commit.

Release assets are the pkg and its checksum only. AMFIPass stays under extras/;
Release assets are the standard pkg, AutoPkg-Assets.pkg and their SHA256SUMS.
AMFIPass stays under extras/;
the root uninstall.sh is a committed, standalone uninstaller for distributed
graphics components. Keep removal targets tied to public package contents;
retain obsolete paths only when needed to remove a previously published release.
Expand Down
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
# Changelog

## 0.4.0

Use the latest [WhateverXe](https://github.com/b00t0x/WhateverXe/releases) release with this update.

### Added

- Add experimental automatic Graphics installation before Setup Assistant through upstream AutoPkgInstaller.

### Fixed

- Fix graphics initialization on systems using the new USB-C DisplayPort Alt Mode support.
- Extend driver matching and OpenGL, video and OpenCL acceleration to the additional GPU IDs accepted by WEX.
- Fix Metal and video compatibility with Sequoia and Tahoe updates without requiring an exact OS build match, and ensure the Metal driver can load its bundled dependencies on first use.

## 0.3.2

- Fix OpenGL texture updates and missing geometry for the measured six-bank VS-only and VS/GS URB layouts on Big Sur–Tahoe. Handle all four measured layouts in one rule set while preserving the four/eight-bank corrections.
Expand Down
89 changes: 29 additions & 60 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,13 @@

[日本語](README_ja.md)

Signed graphics payloads and a standard macOS installer for
[WhateverXe](https://github.com/b00t0x/WhateverXe). One pkg selects the payload
for the running macOS and installs it under `/Library`, then rebuilds AuxKC.
System files and snapshots are not patched. OpenCore/EFI configuration remains
separate.

For supported GPUs, features, configuration and known issues, see
[WhateverXe](https://github.com/b00t0x/WhateverXe). WEX and this package have
independent release versions. AppleIntelTGLCompat is included in the package;
its source and shared headers remain in the WEX repository. One TGLCompat build
is shared by all supported macOS versions through the Common payload.

See the [changelog](CHANGELOG.md) for changes in each package version.
Signed graphics drivers and a macOS installer for [WhateverXe](https://github.com/b00t0x/WhateverXe). The package installs under `/Library` and rebuilds AuxKC without patching System files or snapshots.
Use the latest WEX and Graphics releases together. See [WEX](https://github.com/b00t0x/WhateverXe) for supported GPUs, configuration and known issues, and [CHANGELOG](CHANGELOG.md) for package changes.

## Requirements

- Intel macOS, with the WEX/OpenCore configuration described in the WEX README.
- The latest WhateverXe release, with Lilu.
- [AMFIPass 1.4.1 Mod](extras/AMFIPass-v1.4.1-Mod-RELEASE.zip), loaded through OpenCore. The ordinary upstream AMFIPass is not a substitute for this signing chain.
- SIP configuration `csr-active-config=03080000` (value `0x803`). Full SIP is not supported by this package.
- OpenCore with Lilu, the latest WEX and [AMFIPass 1.4.1 Mod](extras/AMFIPass-v1.4.1-Mod-RELEASE.zip). Upstream AMFIPass is not a substitute.
- SIP setting `csr-active-config=03080000` (`0x803`). Full SIP is unsupported.

| macOS | Required version |
| --- | --- |
Expand All @@ -32,71 +19,53 @@ See the [changelog](CHANGELOG.md) for changes in each package version.
| Sequoia | 15.8.x |
| Tahoe | 26.7 or newer |

Installer version ranges are not a guarantee of compatibility with future OS
updates. The current payloads target builds 20G1443, 21H1320, 22H730, 23J631,
24H32 and 25G241. Check the WEX documentation and release notes before updating
macOS. `amfi=0x80` and `ipc_control_port_options=0` are not required.
For other OCLP root patches, use the [custom OCLP build](https://github.com/b00t0x/OpenCore-Legacy-Patcher) with the matching Mod signing chain.

## Install

## Relationship to WEX
1. Configure OpenCore as described in [WEX](https://github.com/b00t0x/WhateverXe#installation). Restore any older Xe System patch first.
2. Boot the target macOS and open `WhateverXe-Graphics-*.pkg` from [Releases](https://github.com/b00t0x/WhateverXe-Graphics/releases).
3. Restart after installation succeeds. Resolve any reported installation error before restarting.

WEX supplies the OS/GPU adaptations and display control. This package supplies
the graphics drivers, their compiler components and AppleIntelTGLCompat, which
provides shared driver services. The release numbers do not have to match.
The installer does not change EFI or SIP. The pkg is unsigned and not notarized; its modified graphics payloads carry the Mod code signature.

Use the latest releases of both components. GPU and display requirements are
described in the [WEX configuration guide](https://github.com/b00t0x/WhateverXe#configuration).
## Automatic installation before Setup Assistant

## Using other OCLP root patches
AutoPkg enables graphics acceleration during a **fresh macOS installation**. It has been tested on Sequoia and Tahoe.

If you also use OCLP for other root patches, use the
[custom OCLP build](https://github.com/b00t0x/OpenCore-Legacy-Patcher).
The upstream OCLP and Xe payloads require different AMFIPass trust anchors;
one AMFIPass cannot validate both sets. The custom OCLP build uses the matching
Mod signing chain.
1. Prepare a supported macOS USB installer and download [`AutoPkg-Assets.pkg`](https://github.com/b00t0x/WhateverXe-Graphics/releases/latest/download/AutoPkg-Assets.pkg) from Releases.
2. Copy it into `Library/Packages/` on that USB, keeping the filename. Create the `Packages` folder if it does not exist. To open the hidden `Library` folder, use the following command with your USB's volume name:

## Install
```sh
open "/Volumes/Install macOS Tahoe/Library"
```

1. Configure WEX, Lilu and the linked **Mod** AMFIPass in OpenCore. If an older
Xe System patch is installed, restore it using its original recovery method.
2. Boot the macOS you want to install into.
3. Download the pkg from [Releases](https://github.com/b00t0x/WhateverXe-Graphics/releases), open it in Installer, and restart after installation succeeds.
3. Add upstream [AutoPkgInstaller 1.0.4](https://github.com/dortania/OpenCore-Legacy-Patcher/blob/main/payloads/Kexts/Acidanthera/AutoPkgInstaller-v1.0.4-RELEASE.zip) to OpenCore alongside Lilu, WEX and Mod AMFIPass. Set `csr-active-config=030A0000` (`0xA03`); also add `-autopkgbeta` for Tahoe.
4. Install macOS normally. An extra restart applies Graphics before Setup Assistant; the initial USB installer UI is not accelerated.

The pkg uses normal Installer payloads and receipts. It updates AuxKC, and on
Tahoe disables `CoreMedia / AllowOnePassMetalScaling`. It does not modify EFI,
boot arguments or SIP. The pkg container is unsigned and not notarized; the
modified payloads carry the Mod code signature. If installation reports an
error, resolve it and reinstall before restarting.
Do not open AutoPkg manually. Use the standard pkg for existing systems or updates, and do not combine WEX and OCLP AutoPkg assets on one USB. The OCLP application, KDK and MetallibSupportPkg are unnecessary.
`0xA03` allows unapproved kexts to load; removing its extra `0x200` bit later does not necessarily preserve approval.

## Uninstall

Download the current [`uninstall.sh`](uninstall.sh) from this repository, then run:
Download the latest [`uninstall.sh`](uninstall.sh), run it, then restart:

```sh
sudo bash uninstall.sh
```

Restart after successful removal. The script removes the graphics components
distributed by this project, removes the scaling override, rebuilds AuxKC and forgets
the graphics package receipts. Use the current script regardless of which pkg
version was installed. It leaves other CoreMedia settings intact. It does not remove WEX,
Lilu or AMFIPass from EFI, or restore an older graphics stack.

AMFIPass and this cleanup script are maintained in the repository independently
of the graphics pkg. Releases contain the pkg and its checksum.
This removes Graphics installed by either method and rebuilds AuxKC. It leaves EFI components in place and does not restore an older graphics stack. Installation errors are recorded in `/var/log/install.log`.

## Build

On macOS with Xcode Command Line Tools and Python 3.10 or newer:
Requires macOS, Xcode command-line tools and Python 3.10+. Verification also needs Node.js and `rcodesign` 0.29.0.

```sh
python3 tools/build.py
python3 tools/test.py dist/WhateverXe-Graphics-0.3.1.pkg
python3 tools/test.py dist/WhateverXe-Graphics-0.4.0.pkg
```

The test also needs Node.js and `rcodesign` 0.29.0; CI supplies both. The builder
uses the checked-in signed `payloads/Common` and OS directories. It does not
fetch Apple originals, patch binaries or use signing keys. Output goes to
`dist/`. No Python, Node.js or rcodesign is needed on the target Mac.
For AutoPkg, add `--autopkg` to the build command and test `dist/autopkg/AutoPkg-Assets.pkg`.
The builder uses the checked-in signed payloads; it does not fetch Apple originals or require signing keys.

[Source and signing information](docs/SOURCES.md). The license for the packaging
tools does not relicense the third-party payloads; see [notices](THIRD_PARTY.md).
[Source and signing information](docs/SOURCES.md) · [Third-party notices](THIRD_PARTY.md)
Loading
Loading