2.2 KiB
2.2 KiB
| id | ticket | title | status | created | ref_decisions | tags | |||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| PLN-0089 | vm-render-parallel-execution-boundary | Introduce Render Handoff Abstraction | done | 2026-06-05 |
|
|
Briefing
DEC-0031 requires a single-slot latest-wins handoff where the producer never blocks on render ACK and replacement before consumption is observable.
Objective
Introduce a render handoff abstraction that can be used synchronously today and by a worker later.
Dependencies
- Source decision:
DEC-0031. PLN-0093should define telemetry counters before final instrumentation is wired.
Scope
- Add a small handoff type or trait around one pending owned
RenderSubmission. - Support publish, take latest, replace pending, and drain/discard operations.
- Report replacement/drop events to telemetry hooks.
- Integrate the abstraction into
RenderManagerwithout starting a worker.
Non-Goals
- Do not spawn a thread.
- Do not implement frame pacing.
- Do not change Shell UI default rendering policy.
Execution Method
- Locate
RenderManager::latest_complete_submissionownership and publication flow. - Introduce a handoff module with single pending slot semantics.
- Move
RenderSubmissioninto the slot on publication. - Make
take_latesttransfer ownership to the consumer. - Count replacement when a pending submission is overwritten before consumption.
- Keep current synchronous publication working by immediately taking and rendering through the same abstraction.
Acceptance Criteria
RenderManagerno longer relies on an unconstrained rawOption<RenderSubmission>for the future worker boundary.- Publishing a newer pending submission replaces the old one without blocking.
- The consumer receives owned submissions.
- Replacement before consume is observable.
Tests
- Unit tests for empty take, publish/take, publish/replace/take, and drain/discard.
- Integration smoke test that existing synchronous render still presents frames.
Affected Artifacts
crates/console/prometeu-system/src/services/vm_runtime/render_manager.rs- New or existing render handoff module under
crates/console/prometeu-system. - Render manager tests.