Add shared-data and bundle invalidation signals, and have handles publish them automatically for SAB and graph mutations. Document the raw core worker protocol in a dedicated VitePress site and simplify the glTF import and picking example. Amp-Thread-ID: https://ampcode.com/threads/T-01a01ff8-b91f-724f-8952-f07c6b5042fd Co-authored-by: Heaust Azure <heaust.azure@gmail.com>
1.5 KiB
1.5 KiB
layout, hero, features
| layout | hero | features | |||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| home |
|
|
Contract at a glance
The browser main thread owns the HTML canvas and starts the module worker. The worker initializes the WASM core and WebGPU against an OffscreenCanvas. All control operations are structured-clone messages. Bulk numeric state lives in one returned SharedArrayBuffer; graphs describe how named row arrays become GPU resources.
The application is responsible for three important contracts:
- Correlate each reply by its
requestvalue; profiler messages are unsolicited. - Finish shared-memory writes before setting
signals[5](sabDirty). - Before a mutation that invalidates compiled render bundles, set
signals[6](bundleDirty), make the mutation, compile and switch a replacement graph, then let successfulswitch-loadoutclear lane 6.
This site describes the current wire API, not the higher-level wrapper API.