2.1 KiB
2.1 KiB
| id | ticket | title | status | created | ref_decisions | tags | |||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| PLN-0090 | vm-render-parallel-execution-boundary | Add Render Frame Pacing Contract | done | 2026-06-05 |
|
|
Briefing
DEC-0031 separates Game logical frame pacing from render worker ACK. Game frames are paced by a frame clock/scheduler and still end at FRAME_SYNC.
Objective
Define and implement the runtime contract that authorizes Game logical frames without using render present completion as ACK.
Dependencies
- Source decision:
DEC-0031. PLN-0091should define which AppModes consume this policy.
Scope
- Introduce or formalize a
FrameClock/FrameSchedulerauthority for Game workloads. - Ensure Game VM runs at most one logical frame per authorized frame tick.
- Preserve
FRAME_SYNCas logical frame end. - Record overrun/repeat conditions through telemetry hooks.
Non-Goals
- Do not make Shell UI run a game loop.
- Do not implement catch-up frames or logical frame skipping.
- Do not tie VM progress to render ACK.
Execution Method
- Inspect current tick/budget/
FRAME_SYNChandling. - Identify where a frame tick should authorize Game VM execution.
- Introduce a narrow scheduling API consumed by Game lifecycle code.
- Preserve budget/cycle/time accounting only for watchdog, certification, and diagnostics.
- Add telemetry points for logical-frame-overrun and no-new-frame/repeat.
- Document the distinction between logical frame ID, produced submission ID, and presented frame ID.
Acceptance Criteria
- Game VM cannot run unlimited logical frames ahead of the frame clock.
- Render worker or render consumer ACK is not required to start the next logical frame.
- Slow logical frames remain sequential and produce overrun/stutter telemetry.
- Shell lifecycle remains unaffected.
Tests
- Unit tests for scheduler permitting one Game frame per tick.
- Test that no catch-up
N+klogical frame is produced after overrun. - Regression tests around
FRAME_SYNCbehavior.
Affected Artifacts
- VM runtime scheduling modules.
- Firmware/Game running step.
- Telemetry interfaces touched by pacing.