Flat or wrapped?
Compare a flat quad layer with a curved cylinder layer. Each has its own render callback and fallback proxy, while the XR manager decides whether a real session can promote them to native layers.
Preparing one quad layer, one cylinder layer, two independent layer scenes, and the desktop fallback proxies...
- session
- -
- layers
- -
- native
- -
- renderLayers
- -
- quad frames
- -
- cylinder frames
- -
- draw calls
- -
Both layer callbacks continue to render even when a proxy is hidden; visibility only affects the ordinary desktop scene mesh.
The topology and pixel dimensions are passed when the layer is created. Content animation belongs in each layer's render callback.
Outside XR, both callbacks render into emulated XRRenderTargets. Native bindings and XRFrame timing are session-owned.
Use ?forceWebGL=1 to inspect the WebGL2 companion. This comparison intentionally distinguishes fallback geometry from physical native-layer evidence.