This document tracks upstream dependencies, pinned versions, and compatibility for go-webgpu.
| Dependency | Version | Commit | Date |
|---|---|---|---|
| wgpu-native | v27.0.4.0 | 768f15f |
2025-12-23 |
| webgpu.h | wgpu-native bundled | same as above | — |
| goffi | v0.4.2 | c8ef100 |
2026-03-04 |
| gputypes | v0.2.0 | 146b8b2 |
2026-01-29 |
| go-webgpu | wgpu-native | goffi | gputypes | Go |
|---|---|---|---|---|
| v0.4.2 | v27.0.4.0 | v0.4.2 | v0.2.0 | 1.25+ |
| v0.4.1 | v27.0.4.0 | v0.4.1 | v0.2.0 | 1.25+ |
| v0.4.0 | v27.0.4.0 | v0.4.0 | v0.2.0 | 1.25+ |
| v0.3.2 | v27.0.4.0 | v0.4.0 | v0.2.0 | 1.25+ |
| v0.3.1 | v27.0.4.0 | v0.3.9 | v0.2.0 | 1.25+ |
| v0.3.0 | v27.0.4.0 | v0.3.8 | v0.2.0 | 1.25+ |
| v0.2.1 | v27.0.4.0 | v0.3.8 | v0.2.0 | 1.25+ |
| v0.2.0 | v27.0.4.0 | v0.3.7 | v0.2.0 | 1.25+ |
| v0.1.1 | v24.0.3.1 | v0.3.3 | — | 1.23+ |
| v0.1.0 | v24.0.3.1 | v0.3.1 | — | 1.23+ |
wgpu-native is a binary dependency (not a Go module). Users must have the shared library available at runtime:
| Platform | Library | Location |
|---|---|---|
| Windows | wgpu_native.dll |
Same directory as executable or %PATH% |
| Linux | libwgpu_native.so |
LD_LIBRARY_PATH or /usr/local/lib |
| macOS | libwgpu_native.dylib |
DYLD_LIBRARY_PATH or /usr/local/lib |
Download pre-built binaries: wgpu-native releases
| Project | Role | URL |
|---|---|---|
| wgpu-native | C API to wgpu (Rust) | https://github.com/gfx-rs/wgpu-native |
| wgpu | Rust WebGPU implementation | https://github.com/gfx-rs/wgpu |
| webgpu-headers | WebGPU C header spec | https://github.com/webgpu-native/webgpu-headers |
| goffi | Pure Go FFI library | https://github.com/go-webgpu/goffi |
| gputypes | Shared WebGPU type defs | https://github.com/gogpu/gputypes |
| PR / Issue | Project | Status | Description |
|---|---|---|---|
| PR #543 | wgpu-native | Merged | docs: update Go binding to go-webgpu/webgpu |
| Issue #546 comment | wgpu-native | Open | webgpu.h / wgpu.h header inconsistencies |
wgpu follows a ~12-week release cadence. Major releases regularly include breaking changes. The project has no SemVer stability guarantee yet.
Key risks for go-webgpu:
- webgpu.h header updates — enum values, struct layouts, function signatures may change
- wgpu.h extensions — wgpu-native specific API beyond the standard header
- Enum value remapping — our
convert.gomaps between gputypes (spec) and wgpu-native (internal)
Tracking:
- Watch wgpu-native releases
- Watch wgpu CHANGELOG
- Watch webgpu-headers for spec changes
- Issue #3 tracks webgpu-headers upgrade in wgpu-native
Enum values in gputypes follow the webgpu.h specification. When gputypes updates to match a new spec revision, our convert.go must be updated to maintain the mapping.
- Download new release binaries from wgpu-native releases
- Compare
ffi/webgpu.handffi/wgpu.hwith previous version for breaking changes - Update struct layouts in
wgpu/types.goif struct sizes changed - Update enum mappings in
wgpu/convert.goif enum values changed - Update function signatures in binding files if API changed
- Run
go test ./wgpu/...locally (with GPU) to verify - Update this file with new pinned version and commit
- Update
CHANGELOG.md
go get github.com/go-webgpu/goffi@vX.Y.Zgo mod tidy- Run tests
- Update this file
go get github.com/gogpu/gputypes@vX.Y.Z- Check if new enum values were added — update
convert.go go mod tidy- Run tests
- Update this file
Last updated: 2026-03-04 (v0.4.2)