Files
workinf_Blender_Wasm/docs/status/M10-09.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

1.7 KiB

M10-09 Status

status: done task: Preserve the previous usable material pipeline on compile failure updated: 2026-08-16 America/New_York

Scope

PBRMaterialPipeline makes material replacement transactional. A successfully compiled candidate becomes current only after compilation; the previous material is disposed exactly once after replacement. A blocked candidate is disposed and the current material remains usable, with the failed report stored as shaderCompileFailure for diagnostics. This does not claim arbitrary Shader Node support or a WebGPU pipeline.

The Engine Worker independently rejects blocked setShaderGraph requests before the Blender Main transaction, so a failed graph cannot publish a new SceneIR snapshot in addition to the viewport-side rollback.

Evidence

  • WEB_TEST_PORT=5525 npm --prefix web run test:shader-pipeline: Chromium 1/1. The test confirms the failed candidate reports SHADER_NODE_UNSUPPORTED, keeps object identity and the previous compiled report, and that a later successful compile replaces the material.
  • npm --prefix web run typecheck and npm --prefix web run lint passed after the pipeline helper was added.
  • tests/golden/M10-09/shader-pipeline.json fixes the rollback invariants.

Implementation Hashes

  • PBR adapter: 8a9cb52c8e7b1481096017cc659d93541c21724c1203d22755e37e1e3c365250.
  • Chromium spec: e6771f672e885250db199cbf97a0a3866084ab9bb3f2ad25d17f5c53edaa99af.
  • Golden: 5dbb916e512935a76dacde37242b123707897f54ab10d7b99e246f57afbc94ac.

Rollback

Remove PBRMaterialPipeline, its Chromium test/golden and this status file. Keep the M10-08 compile key and Engine Worker pre-transaction gate, and restore the M10 count to 8/15.