Intel Xe on macOS: what moved, 2026-10-22 to 2026-10-23
VedCloud answered our sync_file question (#1): the kext makes no descriptors; their libdrm bridge hands ANV a tracked stand-in index for the PRIME and sync_file calls. That is the route XeGfx 0.0.12 takes, now confirmed by a port that runs on hardware. They will look at sending the LinuxKPI lost-wakeup fix to FreeBSD. High. Their README's new macOS 27 "standalone" kernel claims are contradicted by their own status file and unrelated to Xe; we do not cite them.
JulioNectar's XPS 13 Plus stack (813d2e6a, TSNPL, ideas only): Apple's TGL driver kept forcewake held forever after one unbalanced put (RC6 0 %, GT 5 W; fixed: RC6 87.5 %, 1.4 W), and a CCS hang reset the shared render domain but restored only the hung engine's registers, leaving RCS with execlists off. i915 already models both (shared reset domain, timer-based forcewake release), so for XeGfx the only check is that the forcewake timer works through our LinuxKPI shim. A Latitude 7430 on that stack hangs RCS in WAIT_ON_SCANLINE on video and camera layers (#2), a reminder that a firmware-mode framebuffer must keep pipe A's events alive. Medium.
WhateverXe 0.4.0 brought Tiger Lake laptop panels; three Tahoe laptop reports since then freeze when the accelerator starts, one written up carefully (RedmiBook Pro 15). samranahmad09/WhateverXe-RaptorLakeP lights a Raptor Lake-P eDP panel natively with the accelerator on it. Medium.
kmutil without a KDK: honor-hackintosh-lab now rebuilds only the auxiliary collection (-B and -S inputs, --allow-missing-kdk, inspect before replacing), the recipe our install script uses. Worth adding to our docs: kmutil create has no --aux-path (the flag is -A), and kmutil showloaded cannot verify a rebuilt collection before a reboot.
NullMoth's Intel and AMD test driver is on hold while the NVIDIA driver settles (#297), which leaves XeGfx and VedCloud as the active i915-on-XNU efforts.
Later the same day, 14:20 to 23:28 UTC
Wide IOSurface planes break the blit path on Apple's TGL driver (0c08285, df7ab78, ideas only: the repo derives from NootedGreen). Copies over 128 KB with a row pitch that is not a multiple of 64 bytes went to a 3D blit that does nothing on that GPU, and planes of 32768 bytes per row or more hit the 2D blit's pitch limit, so the image came out green or black. Their fix wraps such surfaces as linear textures over the surface memory, which is what our 0.0.34 plugin already does. What it gives us is two test cases for mtlbench: a 5632 px half-float surface (45056 bytes per row) and an odd pitch such as 656 bytes at 642 px, both checked pixel by pixel. We have not checked ANV's linear pitch alignment on Xe-LPG. High on their facts, Unverified for us.
Render-domain reset clears the compute engine enable (same commit). A GDRST render reset also clears bit 0 of RCU_MODE (0x14800), and Apple's driver only sets it at boot and wake. Marked untested by the author. XeGfx builds i915, and upstream i915 already covers this: xehp_enable_ccs_engines() in intel_engine_cs.c sets the bit again from the render engine's resume handler, which runs after every i915 reset. Nothing to do for us. Low on their fix, High on the i915 side (read in source).
Correction to the morning entry above. The owner of that repo says the Latitude 7430 hang in #2 is not a WAIT_ON_SCANLINE wait: that label was a misread of EXECLIST_STATUS 0x184. The real signature is IPEHR=0xc01dbead, the fill pattern of the dummy page that unmapped GPU addresses point to, so WindowServer's batch fetched commands from unmapped memory. Our line about keeping pipe A's events alive does not follow from that thread. 0xc01dbead is worth grepping for in our own hang logs. High.
Shared events report no device on Metal (105b885). On macOS 27.0.1, [[dev newSharedEvent] device] returns nil, and so does a shared event reopened from its handle; a plain MTLEvent returns the device. If our plugin implements shared events it should match that. Medium.
Noise for us: VedCloud's macOS 27 "reached userspace" README note (#5) describes an emulated run; lutzbichler/drm-kmod's xe page-size series is discrete-VRAM debug code; samranahmad09's lost-vertex records are in Apple's GL path.