Hey Blink API owners, WebGPU has been in development for almost six years but we now feel that it is ready to ship with both the implementation and the specification in good shape. We are targeting shipping in M113 though there's still some work to do, so this is an aspirational milestone and could slip one or two milestones.
The Origin Trial for WebGPU expires starting in M110 so we will also have a separate intent to extend the experiment to cover until M114 to try and have continuity of the availability (with one more release instead of M113 in the case that shipping slips one release). Details are below: Contact [email protected], [email protected], [email protected] Explainerhttps://gpuweb.github.io/gpuweb/explainer Specificationhttps://gpuweb.github.io/gpuweb Design docs https://gpuweb.github.io/gpuweb https://gpuweb.github.io/gpuweb/wgsl https://gpuweb.github.io/gpuweb/explainer Summary The WebGPU API is the successor to the WebGL and WebGL 2 graphics APIs for the Web. It provides modern features such as “GPU compute” as well as lower overhead access to GPU hardware and better, more predictable performance. WebGPU is being developed by the “GPU for the Web” W3C community group. Blink componentBlink>WebGPU <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EWebGPU> Search tagsgpu <https://chromestatus.com/features#tags:gpu>, webgl <https://chromestatus.com/features#tags:webgl> TAG reviewhttps://github.com/w3ctag/design-reviews/issues/626 TAG review statusIssues addressed Risks Interoperability and Compatibility With positive signals (and at least WIP implementations) from all browsers and few unresolved issues in the spec repo, the compatibility risk is low and mostly if other implementers find bugs in the spec as they flesh out their WebGPU implementation. *Gecko*: Positive (https://mozilla.github.io/standards-positions/#webgpu) Development is also ongoing, see: https://hg.mozilla.org/mozilla-central/file/tip/dom/webgpu *WebKit*: In development ( https://github.com/WebKit/WebKit/tree/main/Source/WebGPU/WebGPU) Standard position issue: https://github.com/WebKit/standards-positions/issues/107 *Web developers*: Strongly positive ( https://doc.babylonjs.com/extensions/webgpu) Significant interest and positive feedback from the many early adopters (Babylon.js, Earth, TF.js, sokol-gfx, and many many others). *Other signals*: Activation WebGPU is not polyfillable on existing APIs and requires hardware support on the system. (software fallback is not implemented yet). Security See detailed security explainer: https://gpuweb.github.io/gpuweb/#malicious-use WebView application risks Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications? Debuggability Warnings and errors are exposed via dev tools. Specialized tools can be built directly in JavaScript, integrated in applications or as devtools extensions. Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)?No This feature will not be available on: - Windows 7 and 8 since they don't have D3D12. Support will be extended to these versions of Windows after the first version of WebGPU is shipped. (though they get software fallback) - Android because adding Android support is a lot of engineering that we're scheduling to happen after the release of WebGPU on desktop. - Non-ChromeOS Linux due to dependencies on other reworks of the graphics stack there. (though it will get software fallback) - Other devices that don't support D3D12/Metal/Vulkan or don't have a GPU with good enough minimum specifications.(maybe) The goal is that WebGPU will eventually be supported in hardware on the vast majority of systems on all Blink OSes and have software fallback on the others. In the short-term developers are expected to feature detect whether WebGPU is supported by checking if `navigator.gpu` exists and if `navigator.gpu.requestAdapter` resolves with a non-null GPUAdapter. If WebGPU is not supported then falling back to WebGL or another experience is appropriate. Long-term developers should be able to expect that WebGPU is close to universally available (similar to WebGL 2 today). Is this feature fully tested by web-platform-tests <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md> ?Yes The WebGPU Conformance Test Suite is being built at https://github.com/gpuweb/cts and can be integrated as a subdirectory of WPT. Coverage is still incomplete due to the complexity of the API but progressing quickly. We expect to ship with coverage holes, but with most important and risky aspects of interoperability well tested. DevTrial instructions https://github.com/gpuweb/gpuweb/wiki/Implementation-Status#chromium-chrome-edge-etc Flag name--enable-unsafe-webgpu Requires code in //chrome?False Tracking bughttps://bugs.chromium.org/p/chromium/issues/detail?id=1156646 Launch bughttps://bugs.chromium.org/p/chromium/issues/detail?id=1156661 Sample links https://github.com/austinEng/webgpu-samples Estimated milestones OriginTrial desktop last 109 OriginTrial desktop first 94 Anticipated spec changes Open questions about a feature may be a source of future web compat or interop issues. Please list open issues (e.g. links to known github issues in the project for the feature specification) whose resolution may introduce web compat/interop risk (e.g., changing to naming or structure of the API in a non-backward-compatible way). Some issues are still open for discussion on the WebGPU and WGSL specification. They will all be solved by the time we ship WebGPU although new issues can appear in the meantime: we definitely expect to have minor spec bugs after shipping WebGPU but the overwhelming majority of the spec should see no behavioral changes. Link to entry on the Chrome Platform Status https://chromestatus.com/feature/6213121689518080 Links to previous Intent discussionsIntent to prototype: https://groups.google.com/a/chromium.org/forum Intent to Experiment: https://groups.google.com/u/1/a/chromium.org/g/blink-dev/c/K4_egTNAvTs Intent to Extend Experiment: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAGdfWNMtD9aCpKFbC9HqHMaeSX_840ayvXcjFX2xMUt_MEN_XQ%40mail.gmail.com -- You received this message because you are subscribed to the Google Groups "blink-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAGdfWNOERFV9DFZERpsP2T75g%3DF%2BwFquV1Oxdiea%2BvP4kKg4cw%40mail.gmail.com.
