The desktop plasma marquee showed heap garbage from boot until the gauge
renderer first drew the callsigns. Root cause [T0]: PixelMap8(w,h) allocates
its pixel bytes UNCLEARED (GRAPH2D.cpp `new Byte[w*h]`, no memset) and
Video8BitBuffered never clears them either -- only changedLine[] is zeroed.
The real pod never showed it: the serial PlasmaDisplay transfers only CHANGED
lines, so the garbage never left the buffer and the hardware marquee sat at
its power-on blank. PlasmaWindow::Update however blits the WHOLE buffer
every frame, exposing the junk for the window-up-to-first-draw gap (seconds
on slower rigs).
Fix: PlasmaWindow ctor memsets the pixelBuffer to index 0 (the near-black
background) -- the window comes up blank like the hardware did. Glass-layer
only; the serial pod path is untouched. Verified: glass boot shows a clean
marquee from the first visible frame.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>