You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Neither is "correct"; they are different. wgpu-native is the C API over
83
-
[wgpu](https://github.com/gfx-rs/wgpu), the same implementation every Rust/wgpu consumer ships. If
84
-
that is your deployment target, a Dawn-backed binding tests an implementation you do not run — and
85
-
passes.
82
+
Neither is "correct"; they are different.
83
+
84
+
They are also not obscure alternatives — they are **the two browser implementations**, and which one
85
+
you validate against is the choice this package exists to hand you:
86
+
87
+
|| implementation | ships in |
88
+
|---|---|---|
89
+
|**wgpu-native** — what this binds | the C API over [`wgpu`](https://github.com/gfx-rs/wgpu)| "the core of the WebGPU integration in **Firefox, Servo, and Deno**" — wgpu's own README |
90
+
|**Dawn** — what `webgpu` and `bun-webgpu` bind | Google's implementation | "the underlying implementation of WebGPU in **Chromium**" — Dawn's own README |
91
+
92
+
Deno is the one to notice if you are choosing a JavaScript runtime's binding: its WebGPU is wgpu, so
93
+
this is the binding that makes Bun agree with Deno rather than with Chrome. And if you ship a Rust
94
+
or wgpu-based renderer, it is the same implementation your other half already runs.
95
+
96
+
The general form of the argument: a Dawn-backed binding tests an implementation you may not deploy —
97
+
and passes.
86
98
87
99
Bindings are the right layer to make that choice at. Being able to pick the implementation your JS
88
100
code is validated against, rather than inheriting whichever one your binding's author preferred, is
0 commit comments