WebGPU Status
Make it work: Current status of the port
The implementation in WebGPU is complete and, besides a few exceptions, all features are available both in WebGPU and WebGL:
Features with incomplete support
- Point Cloud System
- WebGPU does not support a point size different from 1, so setting the point size to a value other than 1 will not be taken into account
- WebGPU in WebXR
- WebGPU-XR is experimental and requires browser support for
XRGPUBindingprojection layers andXRGPUSubImage.prototype.getViewDescriptor - WebGPU-XR multiview, Raw Camera Access, Space Warp, and GPU-optimized Depth Sensing are not currently supported
- Quad layers require the runtime to expose the optional
XRGPUBinding.createQuadLayerandXRGPUBinding.getSubImagemethods
- WebGPU-XR is experimental and requires browser support for
Features not working because not implemented yet
- Support for triangle fan / line loop drawing mode
- WebGPU does not support those modes, so we will need to emulate them with triangle strip and line strip
Make it fast: Optimizations
The most important optimizations have now been done (see Optimizations), others could be considered:
- Use compute shaders to perform some conversions when reading data from buffers
- Use compute shaders to generate mipmaps
Other "nice-to-have" features
- Use
CreatePipelineAsyncfor asynchronous pipeline creations
Browser Caveats
Chrome / Chrome Canary do not support all WebGPU features yet, and some others are not fully functional, so here are some caveats:
- GPU timing in the Inspector does not work because timestamp queries are currently disabled in Chrome. You can start Chrome with the
--enable-dawn-features=allow_unsafe_apisflag if you want to enable them. You can also add the--enable-webgpu-developer-featuresflag for more precise timing.