Files
workinf_Blender_Wasm/docs/status/M11-14.md
mes123456 5a11045ca5
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 Blender 5.2 web parity through M12-03D
2026-08-17 17:30:27 -04:00

65 lines
3.8 KiB
Markdown

# M11-14 Status
status: done
task: close render, compositor, and media cancellation/restart/resource recovery
updated: 2026-08-17 America/New_York
## Scope
Schema 1 evidence fixes one report for each of `RENDER`, `COMPOSITOR`, and `MEDIA`.
Every report binds real source bytes, a domain-specific cancellation code, a domain-specific
budget code, generation 1/2 identity and output hashes, positive release receipts, zero
owned resources after release, and a non-empty recovered output. The suite parser rejects
undeclared fields, missing or duplicate domains, published cancellation results, restart
drift, budget mutation, and incomplete release.
The Chromium production-path case opens real Blender Main fixtures for Render and
Compositor and decodes a real H.264 fixture for Media. Render reads an actual WebGL RGBA8
frame, Compositor executes the real Main GraphIR into Float32 output, and Media generates
the initial RGBA8 proxy frame. This task closes only bounded lifecycle behavior; it does not
claim full Eevee/Cycles parity, arbitrary compositor nodes, frame-exact long-video decode,
or complete audio/video rendering.
## Evidence
- `WEB_TEST_PORT=5592 npm --prefix web run test:render-compositor-media-recovery` passed:
protocol negatives 3/3, Blender 5.2 Eevee reference checker, Blender 5.2 Compositor
golden checker, and Chromium 1/1.
- Render used `m11_render_reference.blend`, rejected a pre-cancelled open with
`OPEN_CANCELLED`, preserved the active Main, restarted WebEngine at generation 2, and
reproduced the same scene identity and WebGL output SHA-256. Aggregate texture overflow
returned `GPU_TEXTURE_BUDGET_EXCEEDED` without replacing the retained texture; dispose
reported positive released bytes/resources followed by zero owned textures.
- Compositor used `m11_compositor_allowlist.blend`, returned `COMPOSITOR_CANCELLED` from the
periodic executor check, rejected width 8193 with `COMPOSITOR_BUDGET_EXCEEDED` before
cache mutation, reproduced GraphIR/Float32 output after Worker restart, and cleared the
LRU to zero.
- Media probed and decoded `sequencer-probe.mp4`, rejected a pre-cancelled proxy decode with
`SEQUENCER_CANCELLED`, rejected a cache one byte below the frame size with
`SEQUENCER_BUDGET_EXCEEDED`, cleared the first cache, then re-probed and re-decoded the
H.264 source before reproducing the source/decode/profile identity and RGBA8 payload
SHA-256 in a rebuilt session.
- Regression passed: full Node 193/193, typecheck, lint, production build (75 modules),
render resource budget unit 3/3 plus Chromium main/Offscreen 3/3, Compositor golden unit
3/3 plus Chromium 1/1, media proxy cache unit 3/3 plus Chromium 1/1, status consistency,
release evidence, and `git diff --check`.
## Artifact Hashes
- evidence protocol: `a1b0b36cf93173347d55a955ff2e02f3666f7c28ef7f06442b86f0ee2b272286`
- Chromium production suite: `ef9cd58ce3bbd522c72075e82d6423387b61039509996851d8d5ebf3a0d86789`
- media proxy cache: `7a1dbf8e838c47e2b99bc8932997e79d3c3cf2636b6285ace083800d833e2e64`
- GPU texture store: `a87adefa67b243cfd0cfcad0573a1b646f1e8be8abd0a187e1dc29cab2954d44`
- compositor cache: `3ce4819dadb2d6de7305c3676b2708689cd8be95e6fa7894651d6a02c4658b31`
- unit: `3cec4a33f28a76423a9678bcb61244cc463f5f2f5939c3f0b6865d34063e1f55`
- Chromium spec: `1578848eda7cb26cdf1584fa13f4cc2e252e782959d489dc4454e45c8d06595a`
- golden manifest: `87f17b0437d819e00c4a0902146d6549cf713482667ead627a45ba2b46050247`
- package: `0e731a5c826a999eef372f875c6c5ce9d697fd369a929025370a74cf18a93582`
## Rollback
Remove the recovery protocol, browser suite, unit/Chromium tests, M11-14 golden manifest,
and package command. Restore the media proxy generator signature, Compositor cache clear,
and GPU texture release receipt only if no later caller depends on them. Remove the three
family lifecycle slices, restore M11 to 13/14, and move the queue back from M12-01A.