Advance M8-M11 parity workflows
This commit is contained in:
59
docs/status/M10-07.md
Normal file
59
docs/status/M10-07.md
Normal file
@@ -0,0 +1,59 @@
|
||||
# M10-07 Status
|
||||
|
||||
status: done
|
||||
task: Bounded WebGL2/Three physical compiler for the declared Shader node subset
|
||||
updated: 2026-08-16 America/New_York
|
||||
|
||||
## Scope
|
||||
|
||||
The browser material path now compiles only the declared RGB, Value, Math,
|
||||
Image Texture, Normal Map, Principled, and Material Output closure. The compiler
|
||||
produces a schema-versioned `WEBGL2_THREE_PHYSICAL` report before a Shader Main
|
||||
transaction is sent to Blender. Unknown nodes, cycles, duplicate inputs, missing
|
||||
or blocked images, oversized graphs, and invalid constants fail closed without
|
||||
mutating the source graph.
|
||||
|
||||
This task does not claim arbitrary Shader Node support, WebGPU compilation,
|
||||
complete color management/sampler parity, compile-key invalidation, or pipeline
|
||||
rollback; those remain later M10 tasks.
|
||||
|
||||
## Protocol and Runtime
|
||||
|
||||
- `web/protocol/shader-compiler.ts` defines the M10-07 allowlist, fixed node/link/
|
||||
depth/texture/identifier budgets, deterministic graph fingerprint fallback,
|
||||
scalar Math evaluation, and bounded `ShaderCompileReport`.
|
||||
- The Engine Worker compiles `setShaderGraph` before the native Main transaction,
|
||||
rejects a blocked report, and returns the report with the committed delta.
|
||||
- Main-thread and Offscreen viewport material creation share `createPBRMaterial`;
|
||||
compiled constants and declared base-color/normal texture bindings are stored in
|
||||
material `userData` for the texture adapter.
|
||||
|
||||
## Evidence
|
||||
|
||||
- `WEB_TEST_PORT=5521 npm --prefix web run test:shader-compile`: unit 5/5 and
|
||||
Chromium 3/3 passed. The suite covers the real Main graph transaction, Math
|
||||
result and topological order, Image/Normal bindings through the shared viewport
|
||||
path, missing resources, cycles, duplicate inputs, oversized graphs, forged
|
||||
fingerprints, and source graph immutability on blocked input.
|
||||
- `tests/golden/M10-07/shader-compile.json` fixes the fixture digest, backend,
|
||||
allowlist, six Math operations, and compiler budgets.
|
||||
- The first attempt on the default port was rejected before browser startup because
|
||||
an existing process owned `127.0.0.1:5173`; it is not counted as a feature failure.
|
||||
|
||||
## Implementation Hashes
|
||||
|
||||
- Compiler: `50b29c99d73c886a41bb8e10ccd2309068a1c09b23196655659b2f530d31f856`.
|
||||
- Engine Worker: `376efe09de20150fc32803745da7e7e55bb41d178302e45b1fd90a2fe7778b2e`.
|
||||
- PBR adapter: `f9c2e5ede635d11673f971c985288821af24ed81ecaadc95efefd958637672fd`.
|
||||
- Texture adapter: `d5e379e25e0ab8294523690c4d4c79203b6f1610b4d6a608b33a7118f51efa57`.
|
||||
- Unit test: `1e5d44b4f73f4ee4e4c9329f73628980df9337632dc48a3d50689f051a89b6e7`.
|
||||
- Chromium spec: `c59b9f349bd6ce329ffc89f64eba3fec3e1e02a528978bdc1c3793d921faabc3`.
|
||||
- Golden: `6bb8c07f014a0f2c1fd0e9ec16b08b99a524d8d3161bc556767acaf510c6c961`.
|
||||
- Package: `ea0fef34497d51448d5478f4a761bef3c4ca816c408fd8a0807eaa0b093d0df8`.
|
||||
|
||||
## Rollback
|
||||
|
||||
Remove the compiler, Worker gate, shared material/texture adapter integration,
|
||||
M10-07 tests, golden and this status file together. Restore the M10 count to
|
||||
6/15 and leave Shader Main's existing capability gate and writeback contract in
|
||||
place; do not retain a compiler report that is not enforced before Main mutation.
|
||||
Reference in New Issue
Block a user