r/hackintosh • u/Mr_BananaPants • 7h ago
IT BOOTS! (WIP) Google Pixel 1 (2016) now running iOS 16 with full GPU acceleration
Enable HLS to view with audio, or disable this notification
Quick update on the Pixel 1 running iOS 16. I got the GPU working, so the whole iOS UI is now rendered by the Pixel's own Adreno 530 instead of the CPU. It also boots a lot faster now, about 20 seconds from the boot screen to the lock screen.
How the GPU part works, for the people who asked last time: iOS normally only talks to Apple GPUs through Metal, which obviously doesn't exist for an Adreno. But Core Animation (the thing that draws the whole iOS UI) still has an old OpenGL ES renderer hidden inside it. So with a lot of help from Claude, I wrote a GPU driver in the iOS kernel for the Adreno 530: power, clocks, firmware, memory, command submission. On top of that I ported Mesa's open source freedreno driver (the same one Linux uses) to iOS. Core Animation thinks it's talking to Apple's OpenGL, but every frame is actually drawn by Mesa on the Adreno, running at 600 MHz.
Getting it to look right was the hardest part. Some of the effects iOS uses (blurs, Control Center buttons, the lock screen clock) depend on shaders Apple never wrote for OpenGL, so I had to write those myself. The GPU also scales every frame up to the Pixel's 1080p screen, and the screen now refreshes at up to 60 Hz instead of 30.
Other stuff since the last post:
- All the stock apps are there now (Weather, Calendar, Notes, Maps, Music, Files...)
- The default iOS 16 wallpaper works
- Real battery percentage and charging
- All 4 cores running (turbo up to 2.15 GHz works too, but it gets really hot with no thermal management, so it's off by default)
Still not working: Wi-Fi, Bluetooth, cellular, sound, camera, and anything that needs Metal. It's a cool demo, not a daily driver.
Everything is on GitHub now, including the GPU driver and the iOS port of Mesa: https://github.com/joranv1/ios-sailfish
Big thanks to dipa-studio for the original ios-sweet port this is built on, and to the Mesa/freedreno folks.