2.3 KiB
2.3 KiB
| id | ticket | title | status | created | ref_decisions | tags | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PLN-0088 | vm-render-parallel-execution-boundary | Define Read-Only Render Resource Boundary | done | 2026-06-05 |
|
|
Briefing
DEC-0031 requires render packets to carry small owned data and stable resource IDs, while heavy banks/caches remain resident and read-only to render consumers.
Objective
Define and enforce the read-only resource boundary needed before any worker can safely read scene/glyph/cache data.
Dependencies
- Source decision:
DEC-0031. PLN-0087should clarify the packet consumer path before this plan finalizes worker-facing APIs.
Scope
- Identify every resource read during Game2D rendering.
- Classify data as packet-owned, resident read-only, or logical-core mutable preparation state.
- Add trait/API boundaries for render read access where missing.
- Document which types must be
Send + Syncfor a real threaded worker.
Non-Goals
- Do not make resource swaps transactional.
- Do not capture
Arc<GlyphBank>orArc<SceneBank>inside every submission. - Do not implement background asset loading policy.
Execution Method
- Trace Game2D render reads from packet to glyph bank, scene bank, viewport cache, and framebuffer helpers.
- Create a short internal module-level contract for render resource access.
- Add or refine read-only access traits for banks/cache without exposing mutable runtime state.
- Add compile-time assertions or targeted tests for
Send + Syncwhere a threaded worker will require them. - Keep resource identity in submissions as IDs/handles, not heavy ownership captures.
Acceptance Criteria
- Render consumer APIs can be described as packet-owned plus read-only resource access.
- No worker-facing API requires
&mut Hardware,&mut Gfx, liveFrameComposer, or mutable VM state. - Shared read APIs that cross thread boundaries have explicit
Send + Syncexpectations. - Existing synchronous renderer behavior remains unchanged.
Tests
- Compile-time trait assertions for read-only resource APIs where practical.
- Unit tests for read-only bank/cache access.
- Existing asset/scene rendering tests continue to pass.
Affected Artifacts
crates/console/prometeu-halcrates/console/prometeu-systemcrates/console/prometeu-drivers- Relevant renderer/resource tests.