2.3 KiB
2.3 KiB
| id | ticket | title | status | created | ref_decisions | tags | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PLN-0076 | render-frame-packet-boundary | Capabilities and ABI Domain Split | done | 2026-05-25 |
|
|
Briefing
Source decision: DEC-0030.
Split render capabilities and syscall metadata so composer, gfx2d, and gfxui are independently addressable and enforceable according to AppMode.
Target
Capability gates reject wrong-domain render syscalls, and metadata no longer treats the old primitive gfx.* ABI as the single render surface.
Scope
- Add or rename capability flags for
COMPOSER,GFX2D, andGFXUI. - Update syscall metadata for all render-domain calls.
- Enforce domain availability by
AppMode::GameandAppMode::Shell. - Update resolver and capability tests.
- Preserve
composer.*as Game 2D high-level composition.
Out of Scope
- Implementing command buffers.
- PBS stdlib author-facing wrappers.
- Host rendering.
- Backward compatibility for the old primitive
gfx.*ABI.
Execution Sequence
- Locate capability definitions, syscall registry metadata, and resolver tests.
- Introduce separate render capability identifiers for
composer,gfx2d, andgfxui. - Update metadata for existing composer calls and new or renamed primitive domains.
- Add app-mode checks so Game exposes
composerandgfx2d, while Shell exposesgfxui. - Replace stale tests that assume one graphics capability.
- Run resolver and runtime syscall tests.
Acceptance Criteria
- Wrong-domain calls fail before mutating render state.
- Game mode cannot use
gfxui.*. - Shell mode cannot use
composer.*orgfx2d.*. - Capability metadata uses the split domain names.
- No compatibility promise remains for the old primitive
gfx.*ABI.
Tests / Validation
- Add resolver tests for all three capabilities.
- Add app-mode enforcement tests for allowed and rejected calls.
- Run affected unit and integration tests.
Risks
- A large rename can hide semantic mistakes; verify every syscall maps to the correct domain responsibility.
- Author-facing stdlib names may still use
gfx; keep this plan focused on ABI metadata.
Affected Artifacts
- Syscall metadata and resolver modules under
crates/ - Capability tests