Google has announced that starting with Chrome version 113, currently in beta, WebGPU support will be enabled by default in the browser. WebGPU, in development since 2017, is a next-generation graphics API designed to bring the advantages of low-overhead APIs such as Microsoft’s Direct3D 12, Apple’s Metal, and Vulkan to web browsers and other applications.
Although WebGPU support has been available in Chrome for some time, it was turned off by default due to the API being in development and potential issues arising from updates. Google has stated that Mozilla and Apple plan to support WebGPU in their Firefox and Safari browsers, respectively. However, Google failed to mention that Google has the money to push certain developments and that Firefox, Mozilla, and other browsers may not have the same resources. So, we’ll have to wait to see when everyone else catches up. It remains uncertain how browsers such as Microsoft Edge and Opera that rely on the Chromium browser engine will, or will not, enable WebGPU support like Google.
WebGPU Primer
WebGPU is a Web API designed to enable webpages to efficiently utilize a system’s GPU (Graphics Processing Unit) for complex computations and image rendering within the page. It aims to provide more advanced GPU features compared to the WebGL family of APIs. While WebGL primarily focuses on image rendering, WebGPU offers first-class support for general computations on the GPU, addressing use cases not covered by WebGL 2.
WebGPU allows rendering modern graphics onscreen and offscreen, efficient execution of general-purpose computations on the GPU, and compatibility with various native GPU APIs such as Microsoft’s D3D12, Apple’s Metal, and Khronos’ Vulkan. It also includes a human-authorable language to specify GPU computations, maintains browser security, ensures portability across different systems and browsers, and interacts with the Web platform in carefully-scoped ways.
WebGPU differs from WebGL 3 as it is designed to match the architecture of modern GPUs, addressing CPU and GPU performance issues found in WebGL. It also simplifies the implementation of WebGL on top of modern native GPU APIs. WebGL 2.0 Compute attempted to add general compute functionality to WebGL, but the mismatch with native APIs led contributors to shift their focus to WebGPU.
In the context of web browsers, WebGPU must be efficient and implementable within browsers using a GPU-process architecture. To improve stability and sandboxing, browsers use a special process containing the GPU driver that communicates with the rest of the browser through asynchronous IPC. GPU processes need to validate all messages and objects, ensuring secure usage of WebGPU.
In summary, WebGPU is a powerful Web API designed to allow webpages to leverage the system’s GPU for complex computations and image rendering. It offers improved performance, compatibility, and efficiency compared to WebGL while addressing modern GPU features and ensuring security within web browsers.