# SVA SPIR-V Assembler for WebGPU. The SPIR-V Assembler is a JavaScript library to convert SPIR-V assembly (as produced by spirv-dis in SPIR-V Tools) into a SPIR-V binary. The assembler assumes it is generating WebGPU SPIR-V and thus has the following limitations. * Only 32 bit integers and floats supported * Only GLSL accepted as an extended instruction set * Doesn't support ! syntax for integers * Doesn't support hex encoding for float ```shell yarn install yarn test ``` You can also use `yarn watch` to watch all of the files and re-run tests as needed. ## Webserver Using `yarn serve` will start a webserver on localhost:5000. If you load the `tests/index.html` file this will load the SVA files into browser. ## Command Line There is a simple assembler binary with can be executed from the command line. ```shell yarn sva tests/simple.spv_asm ``` The above will generate a `o.sva` file in the current directory. ## Update spirv.data.json If there is a new spirv-headers release update the externals folder checkout and then: ```shell ./tools/process_grammar.rb > src/spirv.data.json ```