Fuchsia Internals, Vol. I: The Graphics and Display Pipeline
Volume I of the Fuchsia Internals report series examines the graphics and display pipeline. Graphics serves as a comprehensive system application that exercises core kernel primitives simultaneously. Rather than using an in-kernel DRM/KMS subsystem, Fuchsia divides display responsibilities among cooperating user-space services. These services communicate across FIDL channels using zero-copy shared VMOs. A link to the full report appears below.
Note on these reports: These reports were compiled automatically. Verify specific implementation details against upstream source code before relying on them.
This architecture maps directly to pipelined digital hardware:
- Each service acts as a distinct pipeline stage.
- FIDL protocols provide typed, flow-controlled handshakes.
- Shared VMOs function like ping-pong framebuffers.
- A Zircon channel behaves like an AXI4-Stream interface.
- A VMO operates like a managed DMA buffer descriptor.
- A handle functions as an unforgeable capability token.
What is inside
The report details each stage of the graphics stack:
- Magma architecture, analyzing the GPU driver framework and the Magma System Driver (MSD) that manages command rings and MMIO registers.
- sysmem buffer allocation, negotiating memory layout constraints across hardware blocks for tiling, alignment, and cache coherency.
- Display coordination, abstracting physical display hardware and scanout engines.
- Flatland composition, evaluating the retained-mode 2D compositor alongside legacy Scenic GFX infrastructure.
- Escher and Vulkan rendering, integrating Vulkan pipelines into system composition.
- Frame scheduling, synchronizing display presentation deadlines with vsync events and scheduler priorities.
Later sections cover driver hosting inside the Driver Framework, color science across wide-gamut displays, vendor MSD configurations, and Starnix graphics bridging. The volume concludes with an end-to-end trace of a frame from application draw calls to display scanout. For a wire-level implementation guide covering graphics FIDL protocols, see Volume V.
Get the report
This is the first volume of a fourteen-part series; see the series announcement for the complete roadmap. Feedback and corrections are welcome.