Published: Mar 3, 2025 by Brandon Jones
For the last few months I’ve been working on implementing experimental support for WebGPU/WebXR integration in Chrome, and now it’s ready for developers to try on Windows and Android!
To enable Chrome’s experimental WebGPU/WebXR integration, navigate to about:flags and enable both the “WebXR Projection Layers” and “WebXR/WebGPU Bindings” flags. This should be available in Chrome Canary starting with version 135.0.7047.0.
To see WebGPU in WebXR in action you can try the new WebGPU Barebones examples on the official WebXR Samples page. These are not particularly complex, they just show a few floating triangles in VR or AR, but they’re intended to show the most basic requirements for displaying WebGPU content on an XR device.
To provide a more complex example, I’ve also updated my existing WebGPU Metaballs demo to support WebXR. This required multiple changes to the original code and I want to write more about it in the future!
For developers, there isn’t a proper spec for the feature yet, but this explainer runs through the basic usage of the API and has been kept up-to-date. It should be noted that only XRProjectionLayer
has been implemented at this time.
It’s also worth keeping in mind that there are known optimization opportunites in the browser for this feature. There’s at least one texture copy happening internally that we’d like to avoid in the future, so performance still have some room to improve. WebGPU bindings with WebXR are not necessarily expected to be an automatic performance win vs. WebGL at this point as a result.
In addition to WebGPU support, we’ve also added support for WebGL XRProjectionLayer
s to Chrome. This feature, which has been available in the Quest browser for a while, is the minimal required feature set from the WebXR Layers API, which offers a bit more flexibility than the standard XRWebGLLayer
that is available in Chrome today. It does not include, however, other layer types such as Quad layers and Cube layers, or multi-layer support. We would still love to enable those features but they will require larger scale changes to Chrome’s internals before we can support them.
To test Chrome’s WebGL XRProjectionLayer
support you can try the Projection Layer Sample from the official WebXR Samples page. This requires only the “WebXR Projection Layers” flag to be enabled in about:flags.
Both of these features are considered experimental and as such you may encounter unexpected issues while developing with them. Please let us known about any problems you encounter by filing bugs at https://crbug.com!