Compositor
The component that draws each window or layer into its own off-screen buffer and then combines them into the final image, which makes transparency, effects, and tear-free output possible at a small latency cost.
A compositor builds the final screen image from separately rendered pieces. Each application window, or each layer of a web page, draws into its own off-screen buffer, and the compositor combines those buffers into one frame, usually on the GPU, deciding position, stacking order, transparency, and effects as it goes.
Before compositing, windows drew directly onto the shared screen. When one window moved, the one underneath had to redraw the exposed area, and until it did, a trail of stale pixels showed through. With every window in its own buffer, a compositor can move, scale, or fade windows without asking applications to redraw anything. That made a whole class of effects cheap: translucent panels, drop shadows, background blur, animated window transitions, previews of live windows. Because the compositor presents complete frames on the display's schedule, it also prevents Screen Tearing on the desktop.
The costs are real but usually small:
- Latency. Assembling the final frame typically adds part of a refresh, sometimes a whole one, between an application finishing its frame and the screen showing it.
- GPU work and memory. Blur and shadows are not free, and every window's buffer occupies memory.
- One more failure point. If the compositor stalls, the whole desktop stalls.
For fullscreen games, compositors use direct scanout (sometimes called unredirection): when one window covers the whole screen and needs no effects, its buffer is sent straight to the display, skipping composition and its latency.
On Linux, the architecture differs by Display Server. Under X11, compositing was an optional add-on that intercepted the server's output. Under Wayland, the compositor is the display server, so every Wayland desktop composites, and the window manager, input routing, and effects live in one program.
Browsers use the same idea inside a page. Elements that animate transform or opacity can be promoted to their own layers and moved by the compositor thread without layout or paint, which is why those properties animate smoothly while animating top or width forces layout and paint on every frame. A Stacking Context is the browser's grouping unit for this kind of layered painting.
See also5
Desktop Environment
The bundle of software that makes up a graphical desktop, including the window manager, panels, file manager, settings and a shared look, which on Linux is a choice among independent projects rather than part of the operating system.
Systems & Tooling14 connections
Glassmorphism
An interface style of translucent, blurred panels that let the content behind them show through like frosted glass, recurring across operating systems since the 2000s and repeatedly criticized for hurting legibility.
Design & Interface9 connections
Web Animations API
A browser interface that exposes the engine behind CSS animations and transitions to JavaScript, giving scripts animations they can pause, reverse, seek, and await, while still running smoothly off the main thread.
Web Platform10 connections
Graphics Driver
The software that translates a program's drawing commands into instructions a particular graphics card can execute, split between a kernel part that manages memory and displays and a large user-space part that compiles shaders and implements graphics interfaces.
Systems & Tooling17 connections
Background Tab Throttling
Browsers deliberately slow, freeze, or discard pages that are not visible, so code that assumes it keeps running in the background will be wrong.
Web Platform13 connections
Linked from10
- Alpha CompositingGraphics & Rendering
Combining images using a fourth channel that records each pixel's opacity, the arithmetic behind transparency, layering, and smooth edges.
- Desktop EnvironmentSystems & Tooling
The bundle of software that makes up a graphical desktop, including the window manager, panels, file manager, settings and a shared look, which on Linux is a choice among independent projects rather than part of the operating system.
- Display ServerSystems & Tooling
The program that sits between applications and the screen, keyboard, and mouse, deciding what is drawn where and who receives input. On Linux it is moving from X11 to Wayland.
- GlassmorphismDesign & Interface
An interface style of translucent, blurred panels that let the content behind them show through like frosted glass, recurring across operating systems since the 2000s and repeatedly criticized for hurting legibility.
- Graphics DriverSystems & Tooling
The software that translates a program's drawing commands into instructions a particular graphics card can execute, split between a kernel part that manages memory and displays and a large user-space part that compiles shaders and implements graphics interfaces.
- Long TaskWeb Platform
Any stretch of main-thread work over 50 milliseconds, during which the page can't respond to input, and the techniques for breaking such work up.
- requestAnimationFrameWeb Platform
The browser callback that runs once per display frame just before paint, which is the right clock for visual work and stops entirely when nothing is being displayed.
- Stacking ContextDesign & Interface
The nested coordinate system that decides what paints above what, and why z-index often does nothing.
- View TransitionsWeb Platform
A browser API that animates between two states of a page, or between two pages, by snapshotting the old and new views and morphing between them.
- Web Animations APIWeb Platform
A browser interface that exposes the engine behind CSS animations and transitions to JavaScript, giving scripts animations they can pause, reverse, seek, and await, while still running smoothly off the main thread.