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.colorSpaceis 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, andgit diff --checkpassed.
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.