Dart WebGPU

Dart bindings of the WebGPU graphics API.

WARNING: Experimental, Work In Progress

Development is on-going, and not everything works.

  • Async functions like mapAsync currently trigger a crash in Dawn that I’m trying to track down.

Building WebGPU Bindings

To update the webgpu bindings, run python build_libwebgpu.py

This will download the required third-party libraries, build them, and generate an updated version of the ffi Dart bindings using ffigen.

Build Requirements

  • git
  • Python 3.0+
  • CMake 3.15+

Third Party Libraries

Dart WebGPU uses the following third party libraries:

Debugging Tips

  • Build libwebgpu with python build_libwebgpu.py
  • Make sure to load the Debug build of the library by adding wgpu.initializeWebGPU(debug: true); to the top of the Dart program.
  • Add a breakpoint to the Dart code, run in debugger, pausing execution at the breakpoint.
  • Open libwebgpu/_build/Debug/libwebgpu.sln in Visual Studio
  • In VS Debug / Attach To Process...
    • Find the dart.exe process that has the dart program as an argument.
    • Open the lib_webgpu or Dawn cpp file you want to debug in VS, add a breakpoint to the line you want to catch with the debugger.
    • Unpause the Dart Debugger

GitHub

View Github