Skip to content

kainino0x/glslang.js

Repository files navigation

This is a GLSL-to-SPIR-V compiler for the Web and Node. It is a WebAssembly build of glslang.

There are several build configurations:

  • dist/web-min-nocompute: Build for web with only vertex/fragment support and no GLSL compilation messages.
  • dist/web-devel-nocompute: Build for web with only vertex/fragment support.
  • dist/web-devel: Build for web with all features.
  • dist/node-devel: Build for Node with non-async startup and all features. (To use this, just import @webgpu/glslang.)

Re-building

You shouldn't need to do this, but here is how you can regenerate the files in dist/. This should work on macOS (with GNU Bison) and on Linux.

Using docker with docker-compose

Just run the following

$ docker-compose up --build

And wait a while 🏗️

Setup

  • Make sure Emscripten is on the path (e.g. with emsdk, do source emsdk_env.sh first).
  • Make sure you have a recent version of GNU Bison installed.
  • Install brotli, cmake, and any other necessary build tools.

Build

  • Optionally, clean by deleting build/.
  • Run build.sh.