Most of the behavior of webgpu.h is the same as the WebGPU API (normative reference) but there's a couple places where webgpu.h has non-trivial differences with WebGPU, and it also has native-specific APIs. This is a tracking issue to create initial explainers / spec for these parts.
Things that are very different in native:
Things that use callbacks (Futures) instead of promises:
should be sufficiently covered in Asynchronous Operations.md
Other:
2024-11-27: updates from @kainino0x in italics
Most of the behavior of webgpu.h is the same as the WebGPU API (normative reference) but there's a couple places where webgpu.h has non-trivial differences with WebGPU, and it also has native-specific APIs. This is a tracking issue to create initial explainers / spec for these parts.
Things that are very different in native:
Instance / adapters and device creationnot very different anymore
Event loopFuturesCovered in
Asynchronous Operations.mdOwnership.mdprobably sufficientThings that use callbacks (Futures) instead of promises:
should be sufficiently covered in
Asynchronous Operations.mdFencedoesn't exist anymore
Other:
WGPUBindGroupBindingDescriptor(no sum types in C)will get documented with Representation of GPUBindGroupLayoutEntry #438 / Representation of GPUBindGroupEntry #403
State that webgpu.h has the same behavior as the JS spec #452
but could use more docs still; tracked in:
Please document the relationship between webgpu.idl and webgpu.yml #484
2024-11-27: updates from @kainino0x in italics