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

41 lines
1.7 KiB
Markdown

# 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.