2.7 KiB
| id | ticket | title | status | created | completed | ref_decisions | tags | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PLN-0116 | real-render-worker-establishment | Implement Fake Local Render Backend | done | 2026-06-15 |
|
|
Briefing
DEC-0033 requires fake/local backend behavior before desktop integration so worker semantics can be proven without a window.
Decisions de Origem
DEC-0033: Real Render Worker Contract.
Alvo
Implement backend contracts that consume RenderSubmission plus read-only resources and produce OwnedRgba8888Frame.
Escopo
- Define or finalize a backend trait for worker rendering.
- Add a fake backend for deterministic tests.
- Add a local framebuffer backend that can rasterize through existing driver/GFX logic without exposing mutable
Hardwareas the worker contract. - Verify output frame ownership and pixels.
Fora de Escopo
- No desktop upload/present.
- No runtime tick integration.
- No resource mutation policy changes.
Plano de Execucao
Step 1 - Define backend trait
What: Encode backend consumption contract.
How: Trait consumes RenderSubmission and read-only resource access and returns OwnedRgba8888Frame or RenderWorkerError.
File(s): HAL if shared, or system if internal; prefer HAL if host/drivers implement it.
Step 2 - Implement fake backend
What: Provide test backend. How: Fake backend returns deterministic frames, can block through harness, and can return typed errors. File(s): system test module or driver test utility.
Step 3 - Implement local framebuffer backend
What: Provide non-window raster backend.
How: Use existing GFX rendering internally to turn submissions into OwnedRgba8888Frame, but expose only the backend trait and read-only resources.
File(s): prometeu-drivers rendering modules, possibly a new backend module.
Step 4 - Add output tests
What: Prove frame content and metadata.
How: Render simple Game2D and ShellUi submissions and compare OwnedRgba8888Frame pixels/metadata.
File(s): driver/system tests.
Criterios de Aceite
- Backend trait does not expose mutable
Hardware,Gfx,FrameComposer, or VM state. - Fake backend supports deterministic blocking/error behavior.
- Local backend produces
OwnedRgba8888Frame. - Game2D and ShellUi submissions can produce frame output without a native window.
Tests / Validacao
cargo test -p prometeu-drivers -p prometeu-systemrg "&mut Hardware|&mut Gfx|FrameComposer" crates/console/prometeu-hal crates/console/prometeu-system/src/services/vm_runtime -n
Riscos
- Local backend may be tempted to reuse
Hardwaredirectly as the public worker contract. - Resource access gaps may surface when moving from fake to local rasterization.