65 lines
3.8 KiB
Markdown
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.
|