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

2.9 KiB

M10-08 Status

status: done task: Shader compile key binding for graph, textures, color space and backend updated: 2026-08-16 America/New_York

Scope

Every bounded Shader compile report now carries a deterministic 64-character compileKey. The key is SHA-256 over the task-local report schema, graph hash, renderer backend, and sorted texture identities: image ID, usage, asset ID, asset SHA-256, and resolved SRGB/LINEAR/NON_COLOR color space.

Texture identities are optional for legacy SceneIR rows; missing metadata is represented explicitly as null, while usage-based color-space defaults remain deterministic. An unknown renderer backend or malformed texture digest blocks compilation. The global web/protocol/schema-version remains 1 because this is an additive field in the task-local Shader report, whose schema is still 1.

Runtime

  • ImageIR.colorSpace is optional and validated; render asset requests use it when present and otherwise retain the existing usage-derived color space.
  • The Engine Worker passes snapshot image asset/hash/color-space identity into the compiler. The PBR adapter accepts the same context for main-thread and Offscreen material creation.

Evidence

  • WEB_TEST_PORT=5523 npm --prefix web run test:shader-compile-key: unit 7/7 and Chromium 1/1 passed. The browser test proves key changes for texture SHA-256 and color-space changes through the application PBR entry point.
  • WEB_TEST_PORT=5524 npm --prefix web run test:shader-compile: M10-07 regression unit 7/7 and Chromium 3/3 passed.
  • npm --prefix web run typecheck, npm --prefix web run lint, npm --prefix web run build, npm --prefix web run test:status-consistency, and git diff --check passed.

The first browser attempt on port 5522 used a repository-root dynamic import that Vite does not expose and was rejected before exercising the compiler. The test was moved through the application PBR entry point and rerun in full on port 5523.

Implementation Hashes

  • Compiler: acd5f8deb2912f6823533df12baba8049c5e64d440c17a6dc3f90741f71774b2.
  • SceneIR: a65ef3b4be5303b1b86b3ee6829c795870dcc2490ba58d3a66b8bed8172d6442.
  • Render assets: 840c09a6c2ec56cc75a9ca72bcbdde6957612a7c61b19ab83be47c571eca8b67.
  • Engine Worker: 668728f7e5b6edf9e1cee3e6152238d16ac19f43f030e94e77bfe24e7ff50489.
  • PBR adapter: 8a9cb52c8e7b1481096017cc659d93541c21724c1203d22755e37e1e3c365250.
  • Unit test: 9ae9bb4c778d9e31a607d0c7d678ecf3448ed4e5b57c88ab4ba767a2f0850cc7.
  • Chromium spec: a09ebfa451e76c33f421bc8402fac4c77faedee88020431a505602f317b4eb65.
  • Golden: 187666d9dfb9d9cdd5bd6195cc2f7ee57bb78fa0d05d6020762c06a4ab015984.

Rollback

Remove compileKey, texture identity context, ImageIR color-space metadata, M10-08 tests/golden and the Worker/adapter wiring together. Restore the M10 count to 7/15 and retain graphHash-only reports with the original usage-derived render asset color-space behavior.