Intel Tiger Lake (Gen12) Graphics Driver for macOS
This is a graphics driver for Intel Tiger Lake (Gen12) integrated GPUs, designed for macOS.
##Current Limitations Currently it only opens accelrator user clients for surface and display releted, no command sumbission and metal. Need support from experts......
- GPU Command Submission: Hardware-accelerated rendering via GuC (Graphics Microcontroller)
- Memory Management: GEM (Graphics Execution Manager) and GTT (Graphics Translation Table)
- Display Support: Framebuffer, mode setting, and DP (DisplayPort).
- Metal Integration: Full Metal framework support for GPU acceleration (Needs work)
- Power Management: Runtime PM and GT power management
- Interrupt Handling: GT and display interrupt processing
- macOS (10.15+)
- Intel Tiger Lake GPU (Device IDs: 0x9a40-0x9a78)
- Supported PCI Device:
8086:9A49
AppleIntelTGLController/
├── AppleIntelTGLController.cpp/h # Main driver controller
├── AppleIntelTGLEGLFramebuffer.cpp/h # Framebuffer service
├── AppleIntelTGLIOAccelerator.cpp/h # IOAccelerator for Metal
├── AppleIntelTGLIOAcceleratorClients.cpp/h # Client implementations
├── AppleIntelTGLIOSurfaceManager.cpp/h # IOSurface integration
├── Intel*.cpp/h # Core GPU subsystems
└── Info.plist # KEXT configuration
- Open
AppleIntelTGLController.xcodeprojin Xcode - Select the appropriate build configuration
- Build the project
- Build the kext
- Copy to
/Library/Extensions/ - Rebuild kernel cache:
sudo kextcache -i / - Reboot
| Component | Description |
|---|---|
AppleIntelTGLController |
Main driver service, PCI device handling |
AppleIntelTGLEGLFramebuffer |
Framebuffer for display output |
AppleIntelTGLIOAccelerator |
Metal GPU acceleration |
IntelGuC |
GuC firmware management |
IntelGEM |
Graphics memory management |
IntelRingBuffer |
Command ring buffer |
The driver is configured via Info.plist:
<key>IOPCIPrimaryMatch</key>
<string>0x9A498086</string>- GPU memory allocation (GEM objects)
- DisplayPort link training
- GuC-based command submission
- Power state management
This project is provided for educational and development purposes.