Files
workinf_Blender_Wasm/docs/status/M11-14.md
mes123456 5a11045ca5
Some checks are pending
M6 deployable RC / quick (push) Waiting to run
M6 deployable RC / chromium (push) Blocked by required conditions
M6 deployable RC / release (push) Blocked by required conditions
Advance Blender 5.2 web parity through M12-03D
2026-08-17 17:30:27 -04:00

3.8 KiB

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.