Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
141 commits
Select commit Hold shift + click to select a range
359a8ea
Add opt-in Display13 DSI to HDMI bring-up experiment
b00t0x Oct 28, 2026
44e076e
Gate idle Combo B before the opt-in DSI handoff trial
b00t0x Oct 28, 2026
3315041
Keep watermark retirement pending when cursor precedes primary scanout
b00t0x Oct 28, 2026
b5ebea3
Retain pending watermark resources until the native flip is live
b00t0x Oct 28, 2026
afd01c2
Enable Display13 USB-C DP Alt Mode with detected lane ownership
b00t0x Oct 28, 2026
c09a9d7
Drain Display13 USB-C resources after connector state disappears
b00t0x Oct 29, 2026
46a63bf
Complete deferred Type-C mode release after native path removal
b00t0x Oct 29, 2026
4a57701
Cover deferred TC release in native lifecycle fixtures
b00t0x Oct 29, 2026
87e1e1d
Keep disabled primary scanout pending with a retained surface
b00t0x Oct 29, 2026
1eb795d
Capture held Display13 DP link state after LightUp
b00t0x Oct 29, 2026
2f31f34
Release Display13 DP PCS reset before enabling the buffer
b00t0x Oct 29, 2026
554e54a
Remove temporary Display13 hotplug register snapshots
b00t0x Oct 29, 2026
2fdb93b
Program Display13 DDI PHY link rate for DP
b00t0x Oct 29, 2026
ecec01d
Clarify PHY rate fixture preservation contract
b00t0x Oct 29, 2026
dbfcb55
Keep Display13 AUX disconnects from faulting retained ownership
b00t0x Oct 29, 2026
d8b53d8
Preserve qualified pending scanout during Display13 DBUF setup
b00t0x Oct 29, 2026
4dca732
Add bounded DSI firmware and command preflight
b00t0x Oct 29, 2026
0bb165e
Decode DSI ownership and verify native timing contracts
b00t0x Oct 29, 2026
99b0482
Separate DSI transport and pipe timing consumers
b00t0x Oct 29, 2026
26da9fe
Validate DSI GOP backing and retain its shared PLL
b00t0x Oct 29, 2026
6d8333e
Retain and validate DSI native fixed mode publication
b00t0x Oct 29, 2026
3516856
Qualify DSI native port state without AUX probing
b00t0x Oct 29, 2026
db30ea8
Preserve DSI firmware scanout through bootstrap qualification
b00t0x Oct 29, 2026
bc307e4
Bind qualified DSI boot resources and transcoder-aware DBUF
b00t0x Oct 29, 2026
b7b8210
Recognize qualified DSI GOP in native boot pipe discovery
b00t0x Oct 29, 2026
3cdafd2
Read DSI boot state into qualified native display caches
b00t0x Oct 29, 2026
af42f02
Reject invalid pipe identities before native cache fallback
b00t0x Oct 29, 2026
437aac2
Connect DSI boot path adoption to retained fixed mode publication
b00t0x Oct 29, 2026
b2e5ed8
Guard DSI mode and disable lifecycle entry points
b00t0x Oct 29, 2026
3fd90ac
Prepare shared GGTT scanout mode before DSI resource publication
b00t0x Oct 29, 2026
54e3c23
Add fixed DSI scanout transaction with WM and live-surface proof
b00t0x Oct 29, 2026
a8e688f
Add bounded DSI host quiesce before IRQ and resource retirement
b00t0x Oct 29, 2026
f465529
Connect DSI host quiesce to native IRQ ownership
b00t0x Oct 29, 2026
1a0a46a
Retire DSI PLL and native DDI lease after quiesce
b00t0x Oct 29, 2026
ba177cf
Retire native DSI scanout after stopped host proof
b00t0x Oct 29, 2026
5be2b18
Add DSI native path disposal after PG release
b00t0x Oct 29, 2026
63bc525
Guard DSI public mode and native update entry points
b00t0x Oct 29, 2026
8f30877
Guard DSI cursor writers against host and path retirement
b00t0x Oct 29, 2026
6ec2d6f
Reject late shared writers after DSI retirement without faulting peers
b00t0x Oct 29, 2026
f38cd76
Count native DSI flip and color transactions through completion
b00t0x Oct 29, 2026
1c4a9f6
Gate DSI native attributes, power transitions and stream setup for P2
b00t0x Oct 29, 2026
0709121
Validate pending DSI scanout backing without replacing GOP ownership
b00t0x Oct 29, 2026
d68b5ab
Connect pending DSI backing to native GPU allocation and discard
b00t0x Oct 29, 2026
ecedbbd
Audit DSI GOP prerequisites before external handoff
b00t0x Oct 29, 2026
97c0695
Connect stopped DSI GOP path to timing and port disposal
b00t0x Oct 29, 2026
0eaafa4
Select explicit DSI GOP adoption and observe native mode entry
b00t0x Oct 29, 2026
210576c
Capture bounded DSI mode and client callback state
b00t0x Oct 29, 2026
ce16485
Use adopted DSI identity for online and current mode queries
b00t0x Oct 29, 2026
6e325c6
Reject DSI DDC requests before native AUX power acquisition
b00t0x Oct 29, 2026
157af19
Record the first native DSI AUX power caller
b00t0x Oct 29, 2026
f915265
Exclude DSI paths from native AUX transport admission
b00t0x Oct 29, 2026
1f513b9
Keep unpublished DSI apertures from faulting shared memory
b00t0x Oct 29, 2026
d8fab38
Exercise native DSI backing allocation from the first fixed mode request
b00t0x Oct 29, 2026
7ae1b1a
Prepare DSI identification images under native GPU serialization
b00t0x Oct 29, 2026
08a0ada
Switch the adopted DSI stream to a retained identification surface
b00t0x Oct 29, 2026
6569b76
Keep an unpublished DSI aperture unavailable during private scanout
b00t0x Oct 29, 2026
90bf2e4
Qualify native fixed-mode geometry before DSI backing publication
b00t0x Oct 29, 2026
84337e2
Publish the adopted DSI backing through the native fixed-mode path
b00t0x Oct 29, 2026
26ab0f3
Supply profile-derived DSI EDID for standard mode enumeration
b00t0x Oct 29, 2026
9fa739d
Bind qualified client timing IDs to the retained DSI mode
b00t0x Oct 29, 2026
aebd9d9
Complete adopted DSI mode with the shared DBUF transaction
b00t0x Oct 29, 2026
92f95c6
Initialize the retained DSI pixel clock for native watermarks
b00t0x Oct 30, 2026
ec2d7f0
Accept qualified DSI aliases across client mode list rebuilds
b00t0x Oct 30, 2026
5288d85
Document fixed-mode DSI accelerated desktop support
b00t0x Oct 30, 2026
6a7f6e9
Expose memory-only DSI IRQ counters for runtime validation
b00t0x Oct 30, 2026
8b9d4d6
Add an owned DSI command transport and opt-in NOP trial
b00t0x Oct 30, 2026
22f7024
Bound active-video DSI command waits by the fixed frame period
b00t0x Oct 30, 2026
f03726e
Connect DSI panel sequences to a bounded bootstrap power cycle
b00t0x Oct 30, 2026
c72a018
Rebuild the retained DSI host from the panel profile
b00t0x Oct 30, 2026
408aa67
Observe ULPS completion independently of its self-clearing request
b00t0x Oct 30, 2026
38ea5bf
Check only the defined PHY escape divider field
b00t0x Oct 30, 2026
b906ce0
Connect one-way DSI panel shutdown to native power callback
b00t0x Oct 30, 2026
568e4d4
Route IOGraphics power-state attributes to DSI power handling
b00t0x Oct 30, 2026
78e73be
Add retained DSI display off and resume experiment
b00t0x Oct 30, 2026
ce8713a
Preserve the active native flip surface across DSI display power
b00t0x Oct 30, 2026
ebe342c
Connect DSI PWM brightness and restore deferred requests before backl…
b00t0x Oct 30, 2026
33bf8e7
Preserve DSI user backlight preference through the native save attribute
b00t0x Oct 30, 2026
fd2507c
Observe bounded DSI attribute history for brightness UI routing
b00t0x Oct 30, 2026
b06317e
Declare DSI descriptor model year for native brightness controls
b00t0x Oct 30, 2026
258365a
Test DSI quarter-turn geometry and logical buffer ownership
b00t0x Oct 30, 2026
ac23108
Capture display geometry on first watermark latch failure
b00t0x Oct 30, 2026
ea61308
Preserve DSI rotation requests through native GPU presentation
b00t0x Oct 30, 2026
748e743
Translate IOGraphics orientation into DSI presentation timing
b00t0x Oct 30, 2026
8c7d1c0
Carry retained DSI rotation surface into native path binding
b00t0x Oct 30, 2026
832069f
Separate pre-rotation image dimensions from DSI wire timing
b00t0x Oct 30, 2026
22adb10
Observe GPU presentation cache at DSI mode change and first latch fai…
b00t0x Oct 30, 2026
86bb7c7
Adapt DSI full-frame flip destination to physical rotation space
b00t0x Oct 30, 2026
18e7dcc
Keep compositor orientation separate from requested DSI timing
b00t0x Oct 30, 2026
3447a22
Stop advertising unimplemented DSI framebuffer rotation capability
b00t0x Oct 30, 2026
a2b3259
Remove speculative DSI flip rectangle rewriting
b00t0x Oct 30, 2026
114f0f8
Support scaled GPU presentation with fixed DSI panel timing
b00t0x Oct 30, 2026
fd34399
Record rejected DSI timing requests for mode admission diagnosis
b00t0x Oct 30, 2026
9dc2ea1
Expose DSI GPU presentation support during mode enumeration
b00t0x Oct 30, 2026
c90fbb5
Accept complete scaled DSI mode lists and exact panel clocks
b00t0x Oct 30, 2026
b403883
Expose bounded DSI presentation mode list for diagnostics
b00t0x Oct 30, 2026
dad8386
Use native GPU scaling for portrait DSI presentation
b00t0x Oct 30, 2026
05587de
Delegate DSI presentation requests without angle or size allowlists
b00t0x Oct 30, 2026
6f88501
Observe DSI mode and pixel metadata returned to CoreDisplay
b00t0x Oct 30, 2026
79642c0
Accept bounded mode metadata receipts in adapter fixture
b00t0x Oct 30, 2026
e8b5f57
Trace native DSI detailed timing and source validation
b00t0x Oct 30, 2026
7ab4e55
Observe pixel information on the DSI framebuffer route
b00t0x Oct 30, 2026
aa86769
Publish consistent RGB8 depth in DSI detailed mode metadata
b00t0x Oct 30, 2026
b3d0419
Prepare shared display clock while DSI bootstrap consumers are stopped
b00t0x Oct 30, 2026
08fb698
Preserve parked DSI clock ownership across peer output transactions
b00t0x Oct 30, 2026
a1854b8
Capture DSI wake IRQ admission and bank state
b00t0x Oct 30, 2026
6bebfff
Enable owned aperture backing for native display transitions
b00t0x Oct 30, 2026
c502f53
Initialize owned empty SysMem windows regardless of residual PTE bits
b00t0x Oct 30, 2026
0c08893
Keep stopped peer IRQ banks while rearming display wake
b00t0x Oct 30, 2026
4f688db
Select fixed display pools from available aperture capacity
b00t0x Oct 30, 2026
509a6cc
Document Big Sur DSI and external display coexistence
b00t0x Oct 30, 2026
8e07535
Remove arbitrary DSI mode and OS attribute restrictions
b00t0x Oct 30, 2026
0e34f3b
Prepare cursor watermarks for the requested size before control update
b00t0x Oct 30, 2026
94a6b39
Add opt-in persistent shutdown milestone observer for qualified Big S…
b00t0x Oct 30, 2026
edd4d06
Resolve shutdown NVRAM endpoint at explicit arm time
b00t0x Oct 30, 2026
837607f
Preserve RIP-relative sync entry and require explicit sysctl arming
b00t0x Oct 30, 2026
73a3126
refactor: organize DSI attachment code without changing dispatch
b00t0x Oct 30, 2026
5bf1478
Remove DSI startup test patterns and initialize scanout to black
b00t0x Oct 31, 2026
82faacd
Name the synthesized DSI display MIPI DSI
b00t0x Oct 31, 2026
a2254a1
Observe Display13 TC state across framebuffer shutdown
b00t0x Nov 1, 2026
4ffc21d
Release idle Display13 TC ownership during system shutdown
b00t0x Nov 1, 2026
f0a0fae
Document connected USB-C shutdown support
b00t0x Nov 1, 2026
69f7592
Observe Display12 TC state across native shutdown without altering te…
b00t0x Nov 1, 2026
8bc0ce6
Share passive shutdown observation storage across kernel translation …
b00t0x Nov 1, 2026
120b26b
Remove temporary shutdown observers after TC validation
b00t0x Nov 1, 2026
2fe2f41
Support compatible DSI panel profiles and extended timings
b00t0x Nov 1, 2026
09825bf
Prepare DSI external display clock without host trial dependency
b00t0x Nov 1, 2026
47fbc27
Fix DSI VBT strides and qualify compatible profiles by capabilities
b00t0x Nov 1, 2026
65f14e8
Accept omitted Alder and Raptor Lake mobile GPU identities
b00t0x Nov 1, 2026
4ec53b6
Document tested single-DIMM Alder Lake acceleration
b00t0x Nov 1, 2026
2a83119
Admit remaining Tiger Lake GT2 IDs with fuse-derived URB capacity
b00t0x Nov 1, 2026
7e318bd
Validate servicing kernel call targets without layout-distance pins
b00t0x Nov 1, 2026
8e5a7b9
Resolve native pmap verifier and cache-mode calls by instruction cont…
b00t0x Nov 1, 2026
991f3f4
Merge current display and device coverage with servicing compatibility
b00t0x Nov 1, 2026
e6494d0
Merge remote-tracking branch 'origin/main' into codex/integrated-serv…
b00t0x Nov 1, 2026
2aa06ad
Prepare WhateverXe 0.7.0 and clarify tested hardware support
b00t0x Nov 2, 2026
6fdc6aa
Rewrite user guides around setup essentials and tested configurations
b00t0x Nov 2, 2026
0d12275
Keep GPU compatibility release note focused on user behavior
b00t0x Nov 2, 2026
33cc101
Restore concise GPU compatibility categories and explicit section links
b00t0x Nov 2, 2026
266fd44
Identify tested N250 graphics as Twin Lake in both readmes
b00t0x Nov 2, 2026
dabaf2e
Use consistent Twin Lake configuration wording
b00t0x Nov 2, 2026
59f11ad
Add structured issue form with required environment and baseline boot…
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
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
blank_issues_enabled: false
117 changes: 117 additions & 0 deletions .github/ISSUE_TEMPLATE/report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
name: Bug report or feature request
description: Report a WhateverXe issue or request a change.
body:
- type: checkboxes
id: pre-submission-check
attributes:
label: Pre-submission check
options:
- label: I have successfully installed and booted this version of macOS with neither WhateverXe nor WhateverXe Graphics installed.
required: true
- type: input
id: cpu
attributes:
label: CPU model
placeholder: e.g. Intel Core i7-1165G7
validations:
required: true
- type: input
id: macos-version
attributes:
label: macOS version
description: Include the build number if available.
placeholder: e.g. macOS 26.7.2 (25G332)
validations:
required: true
- type: input
id: wex-version
attributes:
label: WhateverXe version
description: For a custom build, provide its commit hash.
placeholder: e.g. 0.7.0
validations:
required: true
- type: input
id: graphics-version
attributes:
label: WhateverXe Graphics version
description: For a custom build, provide its version and source commit hash.
placeholder: e.g. 0.4.0
validations:
required: true
- type: input
id: hardware-model
attributes:
label: Computer model or motherboard
placeholder: e.g. Lenovo ThinkPad L13 Gen 2
validations:
required: false
- type: input
id: igpu-device-id
attributes:
label: iGPU device ID
placeholder: e.g. 0x9A49
validations:
required: false
- type: dropdown
id: installation-method
attributes:
label: Graphics installation method
options:
- Standard pkg
- AutoPkg
validations:
required: false
- type: textarea
id: display-configuration
attributes:
label: Display configuration
description: For display issues, include the displays, connections and any adapters or docks involved.
placeholder: |
Internal display: 1920x1080 at 60 Hz
External display: 1920x1080 at 60 Hz, USB-C to HDMI adapter
Connected displays when the issue occurs: internal + external
validations:
required: false
- type: textarea
id: request-or-symptoms
attributes:
label: Request or symptoms
placeholder: |
Expected behavior:
Observed behavior or requested change:
validations:
required: true
- type: textarea
id: reproduction-steps
attributes:
label: Steps to reproduce
description: Leave blank if not applicable to your request.
placeholder: |
1. Boot macOS with WEX enabled.
2. Connect an external display.
3. The external display remains black.
Frequency: every time / intermittent
validations:
required: false
- type: textarea
id: regression
attributes:
label: Regression / last working version
description: If this previously worked, give the last working versions and what changed.
placeholder: |
Last working: WEX version / Graphics version / macOS version
First failing: WEX version / Graphics version / macOS version
Other changes: hardware, display connection or configuration changes
validations:
required: false
- type: textarea
id: logs-and-attachments
attributes:
label: Logs and attachments
description: Remove personal information before uploading.
placeholder: |
Paste relevant log excerpts or attach log files, crash reports, screenshots or videos.
Include when each log or capture was taken relative to the issue.
validations:
required: false
10 changes: 8 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,14 @@ Keep README.md and README_ja.md synchronized in the same change, including
requirements, compatibility, links and examples. Do not add personal names or
private identifying information to user documentation without explicit consent.

Document required and optional boot arguments in both READMEs. Do not add
migration instructions for unreleased internal revisions.
Keep setup essentials prominent in both READMEs. Do not append hardware internals,
diagnostic boot arguments or per-change validation details. MIPI DSI needs only
its user-facing scope and limitations in README. Consolidate common regression
coverage and describe only configuration-specific differences in the table.
Preserve concise GPU-family lists grouped as hardware-tested, expected but untested,
further implementation required, and no support planned. Reference a distant table
by its section link rather than saying "below".
Do not add migration instructions for unreleased internal revisions.
Public docs describe current settings and requirements. Keep
investigation notes, implementation diaries, internal diagnostic layouts,
experimental procedures and live machine evidence in the maintainer's private
Expand Down
2 changes: 1 addition & 1 deletion AppleIntelTGLCompat/AppleIntelTGLCompat.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ static uint32_t read32(void *access, unsigned long offset) {
// it does not read plugin boot arguments or depend on framebuffer globals.
// The provider pins the immutable binding until reboot, like the donor owner.
extern "C" uint32_t xelpProbeCapabilities(uint32_t schema,uint32_t configABI) {
return schema==XELP::ProbeCapabilityABI && configABI==XELP::ProbeABI ? XELP::ProbeDisplay13ComboDP|XELP::ProbeDisplay13FixedTC|XELP::ProbeDisplay13FixedDP|XELP::ProbeDisplay13Panel : 0;
return schema==XELP::ProbeCapabilityABI && configABI==XELP::ProbeABI ? XELP::ProbeDisplay13ComboDP|XELP::ProbeDisplay13FixedTC|XELP::ProbeDisplay13FixedDP|XELP::ProbeDisplay13Panel|XELP::ProbeDisplay13DPAlt : 0;
}
extern "C" bool xelpConfigureDisplay(void *controller,const XELP::ProbeConfig *config) {
if(!controller || !config || !config->valid())return false;
Expand Down
16 changes: 16 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,21 @@
# Changelog

## 0.7.0

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

### Added

- Add USB-C DisplayPort Alt Mode output on Alder Lake-class GPUs, including multi-display startup and reconnection.
- Add experimental MIPI DSI display support with graphics acceleration, brightness control, display off/on, rotation, HiDPI and external-display coexistence. Tested on GPD MicroPC 2 and CHUWI MiniBook X N100 only; do not expect it to work on other devices. System sleep/wake remains unsupported.

### Fixed

- Fix graphics initialization and acceleration on additional supported Tiger Lake and Alder/Raptor Lake GPU variants, including single-channel configurations.
- Fix graphics initialization on compatible Sequoia and Tahoe updates without requiring an exact OS build match.
- Fix display freezes during cursor resizing and improve multi-display startup and display off/on with MIPI DSI panels.
- Fix system power-off hangs with a USB-C display connected on Alder Lake-class GPUs.

## 0.6.1

Use the latest [WhateverXe Graphics](https://github.com/b00t0x/WhateverXe-Graphics/releases) package.
Expand Down
Loading
Loading