webgpu

WebGPU for Node [WIP]

  • webgpu

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
webgpu
0.1.164 years ago4 years agoMinified + gzip package size for webgpu in KB

Readme

This is a WebGPU API for native JavaScript, based on a Fork of Chromium's Dawn Project.

<img src="https://img.shields.io/npm/v/webgpu.svg?style=flat-square" alt="NPM Version" />
<img src="https://img.shields.io/npm/dt/webgpu.svg?style=flat-square" alt="NPM Downloads" />

Platforms

This project comes with pre-built N-API binaries for the following platforms:
| OS | Status | | ------------- | ------------- | | Windows | ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ✔ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌| | Linux | ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌✔ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌| | MacOS | ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌✔ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌|

Installation

```` npm install webgpu ````

Building

You have to build dawn as a shared library. After building dawn, create a file named PATH_TO_DAWN in this project's root directory, containing the absolute path to dawn.
In case you have multiple python installations, you might want to use the --script-executable gn flag to instruct gn to use the python 2.x installation.
After you have generated and built dawn, you can now build this project by running: ```` npm run all --dawnversion=0.0.1 ````

Windows

Follow dawn's initial setup instructions, but instead of the standard build, do the following:
To generate the project as a shared library using MSVS: ```` gn gen out/Shared --ide=vs --targetcpu="x64" --args="iscomponentbuild=true isdebug=false isclang=false" ```` It's important that you build using MSVS and not clang, as otherwise you will potentially get linking errors.
To build the project run: ```` ninja -C out/Shared ````
In case python wasn't found: - Use where python to get the location of your python installation - Repoint it by running e.g. npm config set python C:\depot_tools\python.bat

Linux

Follow dawn's initial setup instructions, but instead of the standard build, do the following:
To generate the project as a shared library: ```` gn gen out/Shared --target
cpu="x64" --args="iscomponentbuild=true isdebug=false isclang=true" ````
To build the project run: ```` ninja -C out/Shared ````

MacOS

Follow dawn's initial setup instructions, but instead of the standard build, do the following:
To generate the project as a shared library: ```` gn gen out/Shared --targetcpu="x64" --args="iscomponentbuild=true isdebug=false isclang=true" ````
To build the project run: ```` ninja -C out/Shared ````

Examples

```` cd examples & cd .. node --experimental-modules examples/interactive-triangle.mjs ````

TODOs

- Add CTS - Remove libshaderc from build?