Files
workinf_Blender_Wasm/docs/status/M10-07.md
mes123456 0fe8d2bb56
Some checks failed
M6 deployable RC / quick (push) Has been cancelled
M6 deployable RC / chromium (push) Has been cancelled
M6 deployable RC / release (push) Has been cancelled
Advance M8-M11 parity workflows
2026-08-17 04:37:07 -04:00

3.0 KiB

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.