| These files, and several snippets of other files, are generated by Dawn |
| (Chromium's WebGPU library): |
| - [Generator](https://source.chromium.org/chromium/chromium/src/+/main:third_party/dawn/generator/) |
| - [Generator input](https://source.chromium.org/chromium/chromium/src/+/main:third_party/dawn/dawn.json) |
| - [Generator output](https://source.chromium.org/chromium/chromium/src/+/main:out/Debug/gen/third_party/dawn/emscripten-bits/) |
| |
| The C header is mostly the same as the "upstream" |
| [`webgpu.h`](https://github.com/webgpu-native/webgpu-headers/blob/main/webgpu.h), |
| but native-specific elements are not included. |
| |
| The C++ files are **currently** Dawn-specific, but included in Emscripten for |
| better compatibility with Dawn: it has roughly the same API as Dawn's copy, but |
| is included here because it is strongly tied to an exact `webgpu.h` revision. |
| |
| Dawn additionally autogenerates two "snippets" that are used in Emscripten: |
| - `library_webgpu_enum_tables.js`, which is pasted into [`library_webgpu.js`](../../../src/library_webgpu.js) |
| - `webgpu_struct_info.json`, which is pasted into [`struct_info.json`](../../../src/struct_info.json). |
| |
| Once that's done, the following file also needs to be rebaselined: |
| - [`reference_struct_info.json`](../../../tests/reference_struct_info.json): can be updated by running `tests/runner other.test_gen_struct_info --rebaseline` |