2.5 KiB
2.5 KiB
| id | ticket | title | status | created | ref_decisions | tags | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PLN-0075 | render-frame-packet-boundary | RenderManager Core | done | 2026-05-25 |
|
|
Briefing
Source decision: DEC-0030.
Add RenderManager as the runtime abstraction that closes domain buffers into typed submissions, tracks active app mode, owns transition coordination placeholders, and hands the latest complete submission to the render surface.
Target
Runtime frame execution routes render closure through RenderManager without making it a host renderer or direct framebuffer writer.
Scope
- Add the
RenderManagermodule and public runtime API. - Track active
AppModeand frame id generation. - Close the active domain buffer into a
RenderSubmission. - Enforce latest-complete-submission-wins rather than an unbounded queue.
- Add transition coordination placeholders owned by
RenderManager. - Provide a publication handoff to a render-surface abstraction.
Out of Scope
- Full visual transition implementation.
- Host-specific presentation details.
- Domain buffer implementation beyond integration points.
- Render thread, GPU backend, or backend registry.
Execution Sequence
- Add a runtime render module that owns
RenderManagerand related state. - Wire
VirtualMachineRuntimeframe closure throughRenderManager. - Add active app-mode routing and rejection for incoherent packet closure.
- Add latest-complete-submission storage and replacement semantics.
- Add a render-surface handoff interface without calling host-specific
present()from producers. - Add explicit no-op transition hooks for future work.
Acceptance Criteria
- Runtime has one frame closure authority for render submissions.
- Producers can mutate domain buffers before closure but cannot mutate the closed submission.
RenderManagerdoes not depend on desktop host types.- Backpressure is latest-complete-submission-wins.
- App-mode routing is explicit and tested.
Tests / Validation
- Add unit tests for frame id increment, latest submission replacement, app-mode routing, and no-op transition state.
- Add runtime integration coverage proving frame closure passes through
RenderManager. - Run affected crate tests.
Risks
- Existing frame lifecycle code may assume immediate framebuffer mutation; isolate compatibility shims and remove them in later plans.
- Transition placeholders must not become hidden fade behavior.
Affected Artifacts
- Runtime crate/modules under
crates/ - Runtime tests