[w3ctag/design-reviews] WebGPU and WGSL (#626)

Salut le TAG!

I'm requesting a TAG review of WebGPU and WGSL.

WebGPU is a proposed Web API to enable webpages to use the system's [GPU (Graphics Processing Unit)](https://en.wikipedia.org/wiki/Graphics_processing_unit) to perform computations and draw complex images that can be presented inside the page. This goal is similar to the [WebGL](https://www.khronos.org/webgl/) family of API, but WebGPU enables access to more advanced features of GPUs. Whereas WebGL is mostly for drawing images but can be repurposed (with great effort) to do other kinds of computations, WebGPU has first-class support for performing general computations on the GPU.

WGSL is the WebGpu Shading Language, WebGPU's companion programming language used to specify operations to execute on the GPU.

  - Explainer¹ (minimally containing user needs and example code): https://gpuweb.github.io/gpuweb/explainer/

  - Specification URL: https://gpuweb.github.io/gpuweb/ and https://gpuweb.github.io/gpuweb/wgsl/

  - Tests: https://github.com/gpuweb/cts 
  - Security and Privacy self-review²: https://gpuweb.github.io/gpuweb/explainer/#questionnaire

  - GitHub repo (if you prefer feedback filed there): https://github.com/gpuweb/gpuweb

  - Primary contacts (and their relationship to the specification):
      - Corentin Wallez (@kangz), Google (group co-chair)
      - Jeff Gilbert (@jdashg), Mozilla (group co-chair)
      - Myles Maxfield (@litherum), Apple (WGSL editor)
      - David Neto (@dneto0), Google (WGSL editor)
      - Kai Ninomiya (@kainino0x), Google (WebGPU editor)
      - Dzmitry Malyshau (@kvark), Mozilla (WebGPU editor)
  - Organization(s)/project(s) driving the specification: Apple, Google, Intel, Microsoft, Mozilla and more!
  - Key pieces of existing multi-stakeholder review or discussion of this specification: All of the [Github repo](https://github.com/gpuweb/gpuweb) and many meetings (see [minutes](https://github.com/gpuweb/gpuweb/wiki#minutes))
  - External status/issue trackers for this specification (publicly visible, e.g. Chrome Status): [Chrome Status](https://chromestatus.com/feature/6213121689518080), [Firefox meta-bug](https://bugzilla.mozilla.org/show_bug.cgi?id=webgpu-mvp)

Further details:

  - [X] I have reviewed the TAG's [Web Platform Design Principles](https://w3ctag.github.io/design-principles/)
  - Relevant time constraints or deadlines: Chromium is aiming for an Origin Trial around M93/94 (exact milestone TBD). The group is hoping to publish a recommendation around the end of the year.
  - The group where the work on this specification is currently being done: GPU for the Web CG
  - The group where standardization of this work is intended to be done: GPU for the Web WG
  - Major unresolved issues with or opposition to this specification:
  - This work is being funded by:

You should also know that...

 - There is a lot of engagement on the API even if it is only available behind flags in Firefox Nightly and Chromium Canary.
 - Native implementations of WebGPU (C/C++/Rust projections of the API), [wgpu-rs](https://github.com/gfx-rs/wgpu-rs) and [Dawn](https://dawn.googlesource.com/dawn) are also generating a lot of excitement. Applications written against them can also target WebGPU through WASM for free (e.g. using [Emscripten](https://github.com/emscripten-core/emscripten)).
 - Most of the structural issues in WebGPU have been resolved but there are still details being fleshed out.
 - WGSL got started later and at this time is still evolving in structural ways a bit.
 - You can drop in the [WebGPU matrix channel](https://matrix.to/#/#WebGPU:matrix.org) if you have small questions about the API or WGSL.
 - If you're interested in tutorials for the API, you can read the following:
   - [Get Started with GPU Compute on the Web](https://developers.google.com/web/updates/2019/08/get-started-with-gpu-compute-on-the-web) for a first dive into WebGPU.
   - The [WebGPU samples](http://austin-eng.com/webgpu-samples/) are a great collection of small and not-so-small WebGPU samples.
   - [Learn wgpu](https://sotrh.github.io/learn-wgpu/) tutorials for the 1-1 mapping of WebGPU to Rust. Note that these tutorials use GLSL instead of WGSL.

We'd prefer the TAG provide feedback as:

  🐛 open issues in our GitHub repo for **each point of feedback**


-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/w3ctag/design-reviews/issues/626

Received on Tuesday, 27 April 2021 12:11:41 UTC