
WebGPU finally on Web
We’re excited to announce that Evergine now runs on the Web with WebGPU.
This new experimental template allows developers to build and run Evergine applications directly in modern browsers, taking full advantage of the next-generation WebGPU API. Powered by .NET 8 and the Emscripten toolchain, this release introduces GPU-accelerated rendering and compute capabilities to the web for the first time in Evergine, enabling higher performance, advanced visual effects, and a unified workflow across platforms.
What is WebGPU?
WebGPU is a modern graphics API that provides developers with low-level access to the GPU, enabling advanced rendering techniques and computational capabilities.
Unlike WebGL, which is based on OpenGL (an API that is now deprecated in favor of more efficient alternatives such as Vulkan and Metal) WebGPU addresses the limitations of traditional APIs by offering a more streamlined and efficient interface for graphics programming.
One of the key advantages of WebGPU over WebGL is its support for Compute Shaders. This capability enhances performance in heavy applications and opens new possibilities for creating complex simulations. WebGPU is designed with modern programming paradigms in mind, enabling developers to write code that is not only performant but also maintainable.
Current support status
WebGPU is rapidly expanding its browser coverage and is expected to become a key standard for next-generation graphics and compute applications on the web. You can check the current browser support and usage here: caniuse.com – WebGPU.
- Chrome and Edge fully support WebGPU since version 113.
- Android Chrome also provides native support on most modern devices.
- Safari (macOS and iOS 17+) now includes built-in WebGPU support. Since Safari 26.0, WebGPU has been enabled by default.
- Firefox has partial support and is actively working toward full implementation.
When the graph is weighted by browser market share, it becomes clear that the great number of users are already covered by WebGPU support:
What changed in this Evergine release
Previously we focused on WebGPU Native (desktop). Now Evergine supports WebGPU on the Web through the WASM/Emscripten toolchain that ships with .NET 8. In practice this means:
- Evergine projects can be built to WebAssembly and run in a browser while calling WebGPU APIs exposed by Emscripten.
- Updated WebGPU.NET (Evergine’s low-level binding) to expose the WebGPU C API provided by the Emscripten runtime to managed C#.
Integration fundamentals in Evergine
WebGPU.NET, C# Binding for WebGPU
We have updated WebGPU.NET , our dedicated C# binding for WebGPU integration in Evergine, has been updated to expose the API headers provided by Emscripten for improved compatibility in web browsers.
HLSL to WGSL Shader Translation with Naga
To maintain consistency in shader development, we are implementing a translation layer from HLSL to WGSL using Naga. In this release, we’ve updated the library versions to 26.0.0, enabling support for more complex shader translations that previously resulted in errors in earlier versions.
The Naga version used in the old release (22.1.0) produced several inconsistency errors while translating from SPIR-V, causing unstability to use complex shaders in WebGPU.
Current Experimental Phase
Although still experimental, the integration already supports core functionality: standard mesh and material rendering, skinning, morph targets, and complex compute tasks. These features allow developers to build dynamic, visually rich applications that take advantage of modern GPU capabilities.
Start using WebGPU experimental template
To get started with the experimental WebGPU integration, you can create a new vanilla project in Evergine and add a WebGPU profile by as usual:
Known limitations
A few important caveats to be aware of when using the experimental WebGPU web template:
- RGBA32Float HDR textures: Most mobile GPUs / browsers (Chrome) do not support 32-bit float RGBA textures, so true HDR textures are not available on many phones and tablets.
- Depth-clip control / shadow artifacts: The Emscripten toolchain packaged with .NET 8 does not expose depth-clip control, which can produce artifacts in shadow mapping (notably shadows from objects that are actually behind the camera).
- GPU particles & post-processing: Advanced post-processing effects and GPU particle systems are not yet supported in WebGPU, but we hope to provide support in future releases.