Reverse Enginering the M1 GPU
What is a GPU?
CPU vs. GPU
GPUs can do...
3D rendering
Games
Desktop apps
Compute ("GPGPU")
Image processing
Machine learning
3D rendering
Unified shaders
This design is okay, but...
Lots of bandwidth...
Overdraw
Solution:
Tile-Based Deferred Rendering
Tiling
Tiled Vertex Buffer
Apple GPU Tiling
Definitely Not PowerVRâ„¢
The Apple M1 GPU
M1 SoC
(Simplified)
Address Spaces
GPU Ring Buffers
Let's Reverse Engineer it!
Render commands
GPU Stack
The trick!