2.1 KiB
2.1 KiB
| id | ticket | title | status | created | ref_decisions | tags | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PLN-0091 | vm-render-parallel-execution-boundary | Implement AppMode Render Policy Matrix | done | 2026-06-05 |
|
|
Briefing
DEC-0031 requires render execution policy to be explicit by AppMode/pipeline: Game is frame-paced and may use worker; Shell/System UI is lifecycle-driven and local/synchronous by default.
Objective
Add an explicit render policy matrix so Game and Shell rendering cannot accidentally share the wrong lifecycle or pacing model.
Dependencies
- Source decision:
DEC-0031. PLN-0090defines the Game pacing contract.
Scope
- Represent render policy for current
AppMode::GameandAppMode::Shell. - Make policy selection a SystemOS/lifecycle decision executed by
RenderManager. - Add host/runtime capability fallback for worker-supported vs local render.
- Keep Shell VM-backed apps under Shell lifecycle.
Non-Goals
- Do not rename
AppMode::GametoGame2Din this plan. - Do not implement Game3D.
- Do not define Game pause/resume foreground stack; that belongs to
DSC-0041.
Execution Method
- Locate
AppModerouting through cartridge load, firmware state, SystemOS, andRenderManager. - Add a render policy enum or equivalent explicit matrix.
- Route Game to frame-paced policy with optional worker capability.
- Route Shell/system screens to local/synchronous lifecycle policy.
- Add assertions/tests that Shell UI does not consume Game frame scheduler.
Acceptance Criteria
- Policy is explicit and testable for Game and Shell.
- Shell UI remains local/synchronous by default.
- Game can declare worker-capable policy without requiring the worker to exist.
- Host/runtime capability fallback is represented without moving ownership decisions to host.
Tests
- Unit tests for AppMode-to-render-policy mapping.
- Lifecycle test proving Shell does not require Game frame ticks.
- Regression test for Game still producing frame-paced submissions.
Affected Artifacts
AppModerouting modules.RenderManager.- Firmware load/run steps.
- SystemOS lifecycle integration tests.