SPIRV-Tools/source/wasm
David Neto bbdd0fefda
Update minimum required CMake to 3.17.2 (#5041)
* Update minimum required CMake to 3.17.2

- For Wasm build, update to emscripten/emsdk:3.1.28 which has 3.22.1
- Move the docker-compose.yml down to the source/wasm directory.

Fixes: #5040

* Fix working directory for invocation of wasm build
2022-12-21 16:22:17 -05:00
..
build.sh Add Wasm build (#3752) 2021-11-01 16:45:51 -04:00
docker-compose.yml Update minimum required CMake to 3.17.2 (#5041) 2022-12-21 16:22:17 -05:00
package.json Add Wasm build (#3752) 2021-11-01 16:45:51 -04:00
README.md Add Wasm build (#3752) 2021-11-01 16:45:51 -04:00
spirv-tools.cpp Add SPIR-V 1.6 support to wasm build (#4674) 2022-01-13 13:49:35 -05:00
spirv-tools.d.ts Add SPIR-V 1.6 support to wasm build (#4674) 2022-01-13 13:49:35 -05:00

SPIRV-Tools

Wasm (WebAssembly) build of https://github.com/KhronosGroup/SPIRV-Tools

Usage

const spirvTools = require("spirv-tools");

const test = async () => {
  // Load the library
  const spv = await spirvTools();

  // assemble
  const source = `
             OpCapability Linkage 
             OpCapability Shader 
             OpMemoryModel Logical GLSL450 
             OpSource GLSL 450 
             OpDecorate %spec SpecId 1 
      %int = OpTypeInt 32 1 
     %spec = OpSpecConstant %int 0 
    %const = OpConstant %int 42`;
  const asResult = spv.as(
    source,
    spv.SPV_ENV_UNIVERSAL_1_3,
    spv.SPV_TEXT_TO_BINARY_OPTION_NONE
  );
  console.log(`as returned ${asResult.byteLength} bytes`);

  // re-disassemble
  const disResult = spv.dis(
    asResult,
    spv.SPV_ENV_UNIVERSAL_1_3,
    spv.SPV_BINARY_TO_TEXT_OPTION_INDENT |
      spv.SPV_BINARY_TO_TEXT_OPTION_FRIENDLY_NAMES |
      spv.SPV_BINARY_TO_TEXT_OPTION_COLOR
  );
  console.log("dis:\n", disResult);
};

test();