# GPU-accelerated terminal

A GPU-accelerated terminal renders text through the graphics pipeline (Metal on macOS, OpenGL or Vulkan elsewhere) instead of CPU-only blitting. Examples: Ghostty, Alacritty, Kitty, WezTerm. The pitch is faster scrolling under heavy output, smoother animations, sharper subpixel rendering with ligatures.

## What the GPU actually does

Glyphs are uploaded to a texture atlas. Each frame, the terminal builds a list of quads — one per cell — with texture coordinates, foreground/background colors, and effects. The GPU samples the atlas and composes the frame. This scales well: a 200×60 cell grid is 12,000 quads, trivial for any modern GPU.

The problem isn't throughput. It's that the pipeline runs every time output changes, and on macOS the GPU costs energy on a different curve than the CPU. CPU rendering of static text uses cache-resident, low-power paths; GPU rendering wakes Metal, schedules a frame, and pulls the discrete or integrated GPU into a higher-power state. For mostly-idle workloads with occasional updates (streaming output from a coding agent), the GPU stays warm continuously.

## Tradeoffs that don't show up in benchmarks

- **App Nap interaction.** macOS pauses windows that look idle. Animated spinners and blinking cursors keep the terminal classified as active, defeating the OS-level power saving.
- **Idle redraw amplification.** A blinking cursor, a typing indicator, or a single spinner forces a full pipeline run on each frame.
- **Battery vs plugged-in profile.** Most GPU terminals don't differentiate. iTerm2 is the exception — it ships a per-profile GPU toggle, which makes a battery profile straightforward.

The macOS-specific failure mode — burning more energy than a video call to display `git status` — is documented in [[terminal-gpu-battery-cost]].

## Where GPU rendering is genuinely worth it

Heavy output streams (compiling, log tailing) where dropped frames are visible. Graphical features — true 24-bit color gradients, image protocols (Sixel, iTerm2 inline images, Kitty graphics protocol). Workloads on plugged-in desktops where energy isn't the constraint.

For typical agent sessions on a laptop, none of this applies. The CPU-only path is faster in the metric the user actually cares about: minutes of work before the battery dies.
