Advance M8-M11 parity workflows
This commit is contained in:
59
docs/status/M10-08.md
Normal file
59
docs/status/M10-08.md
Normal file
@@ -0,0 +1,59 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user