evidence · 3.0 KiB

hdmi.md

Committed at docs/evidence/card-shell/bottom-band-flicker/hdmi.md. This is what grounds the requirements that cite it.

Open raw source

Bottom-band flicker on HDMI: same fix, max_render_time 8 (2026-10-15)

Evidence class: operator report on the real monitor plus a phone video the operator recorded of the monitor. No grim capture shows the band (see below).

System: /nix/store/d3p5n719gbhc91vyqjbgxh0zicr9c3jw-nixos-system-nixos-26.11.20260919.20b1ddd (landscape 7.2 test image), HDMI-A-1 at 1280x800, panel switched off.

Symptom. On Home, moving the mouse anywhere from the bottom edge to about one dock height above the dock flickered a dark band across the full width. Moving it elsewhere did not. Apps and the card overview did not flicker.

hdmi-dock-band-phone-frames.png shows three frames from the operator’s 3 s phone video (video_2026-10-15_13-46-58.mp4, sha256 00fa2990…57ee, not committed). Each frame is cropped to the dock and turned so the dock runs across the image. Top: correct. Middle: starting to darken. Bottom: the band, a dark translucent layer with the dock icons and wallpaper still faintly visible through it.

What didn’t cause it:

Cause, as for DSI-1 (max-render-time-fix.md). Every pointer motion over Home makes the shell commit a new frame, so Sway composites continuously. With max_render_time 0, Sway renders right after the previous flip. Apps and the overview stay idle under a moving pointer, which is why they did not flicker. HDMI frames are ARGB8888 (AR24, 1280x800, about 4 MiB), versus RGB565 on the panel.

Fix. At 15:21:14 CDT (sway journal: Handling command 'output HDMI-A-1 max_render_time 8'), swaymsg output HDMI-A-1 max_render_time 8 was applied at runtime (get_outputs showed max_render_time 0 → 8). The operator then moved the mouse over the dock again and reported “band’s gone”. It is now in nix/shell.nix’s output HDMI-A-1 line.

Limits.

The config line on the board. The build carrying it, system /nix/store/wyxsfdsy2m835dy2fgw4f7q9ndjr7xhz-nixos-system-nixos-26.11.20260919.20b1ddd, was booted at 15:27 CDT. swaymsg -t get_outputs showed HDMI-A-1 active with max_render_time 8. The sway journal for that boot has no runtime output HDMI-A-1 max_render_time command, so the value comes from the config.