--- id: PLN-0072 ticket: rgba8888-framebuffer-and-pixel-format-direction title: RGBA8888 Residue Removal and End to End Validation status: open created: 2026-05-23 ref_decisions: [DEC-0029] tags: [gfx, framebuffer, rgb565, rgba8888, renderer, assets, host, backend] --- ## Briefing Close the RGBA8888 migration by removing residual RGB565 contract text and code paths, running end-to-end validation, and preparing the discussion thread for post-execution lessons. ## Source Decisions - DEC-0029 - RGBA8888 Runtime Pixel Format Contract. ## Dependencies - PLN-0067 through PLN-0071 must be complete or merged into the execution branch. ## Target The repository must no longer expose RGB565, `Gfx*565`, `u16` framebuffer/color contracts, RGB565 palette payloads, or RGB565 host conversion as active runtime contract. ## Scope Included: - Whole-repository residue audit. - End-to-end build and test validation. - Documentation consistency checks. - Final migration notes needed for housekeeping and lessons. - Any small missed cleanup in code, docs, tests, or fixtures that directly violates DEC-0029. ## Out of Scope - New alpha-only commands. - Performance optimization after broad alpha support. - GPU backend, render thread, RGB565 backend, multi-format backend abstraction. - New visual design work for the Hub. ## Execution Plan 1. Run repository-wide residue scans. - Search for `RGB565`, `rgb565`, `Gfx.*565`, `clear_565`, `u16` near color or framebuffer APIs, `GLYPH_BANK_PALETTE.*u16`, `size_of::()` near palette code, `draw_rgb565`, and `0xFFFF` near color validation. - Classify every remaining hit as removed, historical-only, unrelated, or a bug. 2. Remove active-contract residues. - Delete or rename any remaining active `Gfx*565` surface. - Remove RGB565 helpers from runtime and host normal paths. - Remove comments that still describe RGB565 as current behavior. - Remove tests that assert RGB565 output. 3. Verify docs and ABI consistency. - Ensure `docs/specs/runtime/04-gfx-peripheral.md`, `docs/specs/runtime/15-asset-management.md`, and `docs/specs/runtime/16-host-abi-and-syscalls.md` agree on RGBA8888. - Ensure public syscall declarations and docs use format-neutral names. - Ensure any historical RGB565 mention is clearly historical and not normative. 4. Run full test/build validation. - Run the repo's standard build command. - Run the relevant Rust test suites across HAL, drivers, system, VM, tools, and host. - Run any visual/snapshot validation available in the repository. 5. Record final evidence. - Capture the exact commands and outcomes in the plan or final PR notes. - List remaining historical RGB565 mentions and why they are acceptable. - Identify lesson candidates for `discussion-housekeep` after execution. ## Acceptance Criteria - [ ] Repository scan finds no active RGB565 runtime contract. - [ ] No public `Gfx*565` API, syscall, metadata, or ABI declaration remains. - [ ] No normal renderer or host path performs RGB565 conversion. - [ ] No asset decode path accepts RGB565 palettes as compatible runtime input. - [ ] Specs, docs, ABI contracts, code, fixtures, and tests agree on RGBA8888. - [ ] Full validation commands pass or any failure is documented as unrelated. - [ ] The discussion thread has enough evidence for housekeeping and lessons. ## Tests / Validation - Run the standard repository build command. - Run affected crate tests: `prometeu-hal`, `prometeu-drivers`, `prometeu-system`, `prometeu-vm`, `prometeu-bytecode`, `prometeu-host-desktop-winit`, and `pbxgen-stress` where applicable. - Run all available visual/snapshot tests. - Run repository-wide `rg` residue scans described above. - Run `discussion validate`. ## Risks - Some remaining RGB565 references may be legitimate historical notes. They must be marked clearly enough that readers cannot mistake them for active contract. - End-to-end visual validation may not exist yet. If so, record the gap and add minimal deterministic checks around RGBA channel order and alpha behavior.