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!