2019-09-18 22:11:10 +00:00
|
|
|
# SVA
|
|
|
|
|
2022-01-26 20:13:08 +00:00
|
|
|
SPIR-V Assembler for WebGPU. The SPIR-V Assembler is a JavaScript library to
|
2019-09-18 22:11:10 +00:00
|
|
|
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
|
|
|
|
```
|