WebGPU needs you: write a WASM library for (web-)HLSL to SPIRV translation


WebGPU is a new work-in-progress web API for programming graphics and compute on GPU. It’s being designed in W3C community group by all major browser vendors.

We haven’t still reached the consensus on the shading language, and some parties are promoting WebHLSL to be specified and used as a primary digestion format. See the positions expressed in issues on Github: binary/SPIR-V versus text format.

We are looking for help on creating a WASM library that would translate the WebHLSL to SPIR-V, since our implementation is based on gfx-hal, which understands SPIR-V. This way, we could support both WebHLSL and SPIR-V digested into WebGPU. The library needs to be robust, small, and fast.

If you want to help, you’d probably need to know how to write Rust parser, and roughly how SPIR-V is structured. To start, one can treat WebHLSL as a regular HLSL until the specification is ready, at which point it would be nice to generate the grammar based on it. We’ll be happy to provide all necessary details.