Part of #18635. Depends on Phase 2 (and Phase 3 for correctness).
Phase 4 — Feature parity
Bring the remaining WebXR features to the WebGPU path, or degrade them gracefully.
Scope
- Composition / quad / cylinder / equirect / cube layers via
XRGPUBinding.getSubImage (mirror the existing WebXRCompositionLayer path).
- Port features that currently build
XRWebGLBinding + wrap WebGL textures — WebXRDepthSensing, WebXRRawCameraAccess, WebXRLightEstimation, WebXRSpaceWarp — through the Phase 0 binding abstraction.
- Where no WebGPU equivalent exists yet, degrade gracefully: disable the feature and emit a
Logger.Warn rather than throwing.
- Audit every remaining feature for
_gl / ThinEngine casts.
Acceptance
- All shipped WebXR features either work on WebGPU or disable themselves with a clear warning; WebGL2 behavior unchanged.
Part of #18635. Depends on Phase 2 (and Phase 3 for correctness).
Phase 4 — Feature parity
Bring the remaining WebXR features to the WebGPU path, or degrade them gracefully.
Scope
XRGPUBinding.getSubImage(mirror the existingWebXRCompositionLayerpath).XRWebGLBinding+ wrap WebGL textures —WebXRDepthSensing,WebXRRawCameraAccess,WebXRLightEstimation,WebXRSpaceWarp— through the Phase 0 binding abstraction.Logger.Warnrather than throwing._gl/ThinEnginecasts.Acceptance