The compositor
Updated: Aug 28, 2026
The compositor is the system component that processes each frame after your app submits it and before the display shows it. It reduces perceived latency, corrects the image for the lenses, and combines app and system layers. These concepts also apply to
App Spacewarp and
compositor layers.
The compositor has three main jobs:
- Apply time warp: It updates the most recently completed frame using a later head-orientation estimate. The compositor samples this estimate closer to display than the prediction used to render the frame. This helps the displayed frame remain stable relative to the tracked world.
- Correct lens distortion: Virtual reality (VR) lenses create pincushion distortion. The compositor applies the opposite distortion so the image appears correct through the lenses.
- Combine layers: Apps can submit multiple textures as compositor layers. The compositor combines them with system content in the final output. A dedicated layer can preserve quality for text and user interface (UI) content.
The next two sections cover time warp and positional time warp separately. The third section explains lens correction and layer composition together.
Your app renders a frame using a predicted head pose. Closer to display time, the compositor samples a later head-orientation estimate and updates the completed frame to account for head rotation since the app rendered it. This technique is called time warp, one of a family of techniques called reprojection that adjust an already-rendered frame using newer data.
Time warp does not render the scene again or correct parallax caused by head translation. If head movement exposes an area outside the submitted frame, time warp can reveal black at the edge. The displayed frame still follows head rotation, which reduces discomfort.
Positional time warp extends time warp to also correct for head translation. In addition to the rotation correction that time warp applies, positional time warp uses a depth buffer your app submits to account for the parallax that translation creates, changing the apparent positions of near and far objects.
App Spacewarp uses submitted motion vectors to account for moving objects.
Lens correction and layer composition
A game engine renders an image for each eye. The compositor corrects those images for the lenses, then combines all submitted layers into the final display output.