v147 · web api · covered on mdn
WebXR Layers
WebXR Layers API provides a more efficient way to draw immersive WebXR content. Instead of rendering all scene content into a single framebuffer, layers are submitted directly to the system compositor — reducing latency, improving resolution, and enabling content like video or UI to bypass the main rendering pipeline entirely.
this feature is documented on MDN
MDN: WebXR Device API
MDN documents the full WebXR Layers API — XRProjectionLayer, XRQuadLayer, XRCylinderLayer, XREquirectLayer, XRCubeLayer, XRCompositionLayer, XRWebGLBinding — with browser compatibility tables and usage examples. gendn doesn't duplicate that here.
quick reference
| Layer types | XRProjectionLayer · XRQuadLayer · XRCylinderLayer · XREquirectLayer · XRCubeLayer |
|---|---|
| Base class | XRCompositionLayer — common properties and behaviours for all layer types |
| Create layers | XRWebGLBinding.createProjectionLayer() · createQuadLayer() · etc. |
| Submit layers | XRSession.updateRenderState({ layers: […] }) |
| Feature descriptor | "layers" — pass in requiredFeatures or optionalFeatures when requesting the session |
| Benefit | Layers rendered by the system compositor at native display resolution and refresh rate, without re-projection distortion |
| Shipped in | Chrome 147 (desktop + Android) |
| ChromeStatus | 6287363875536896 — WebXR Layers |
| Spec | WebXR Layers API Level 1 |