CLAUDE.md: note two -tident/clash-check gaps found on a single-monitor VM

Parked, not fixed. Diagnostics-only and impossible on a real pod, but the
second one produces a confidently wrong "all clear" on exactly the kind of
machine someone would bench-test with, so it is worth recording.

Both stem from one physical monitor being exposed as two DirectDraw
devices. The NULL-device merge is gated on NumMonitors>=2 - deliberately,
it is a multi-monitor fixup - so a single-monitor box keeps the alias in
slot 0 alongside the real device.

1. -tident overpaints itself. Device 0 (NULL alias) and device 1 (the real
   output) resolve to the same screen, so it paints red/"1" and then
   immediately green/"2" over the top. Observed on a VM as a brief flash
   before the second number appears. Behaving as written; there simply is
   not a second screen to paint. Should detect devices sharing an HMONITOR
   and label them together rather than painting sequentially.

2. The consistency check compares device INDICES, not resolved monitors.
   On the same VM it reported "No duplicate device assignments" while
   main -> device 0 (primary alias) and radar -> device 1 (\\.\DISPLAY49)
   were the same physical monitor - the exact collision the check exists
   to predict. Fix would be to treat a device with no HMONITOR as the
   Windows primary and compare resolved HMONITORs.

Context for the VM in question: RDP session (Microsoft Remote Display
Adapter, 1870x985) with the Microsoft Basic Render Driver and no real GPU,
dgVoodoo2 masquerading as its default emulated NVIDIA device. MFD modes
cannot work there regardless - only two DirectDraw devices exist and one
of them is an alias.

Co-authored-by: Claude Opus 5 (Anthropic) <noreply@anthropic.com>
Co-authored-by: GitHub Copilot <copilot@github.com>
This commit is contained in:
2026-08-05 17:37:09 -05:00
co-authored by Claude Opus 5 GitHub Copilot
parent 22495d7245
commit b3c5ecfe56
+16
View File
@@ -1253,6 +1253,22 @@ consistency check explicitly printed *"No duplicate device assignments"*. The do
summary. **Instrument, don't infer.**
## Next steps (proposed)
- [ ] (Parked, diagnostics-only, cannot affect a real pod) Two gaps found while testing `-tident`
on a **single-monitor VM** (2026-08-05). Both only occur when one physical monitor is exposed as
two DirectDraw devices, which happens because the NULL-device merge is gated on
`NumMonitors>=2` (`VideoCard.cpp`) — by design, it is a multi-monitor fixup, so a single-monitor
box keeps the alias in slot 0.
1. **`-tident` overpaints itself.** With device 0 = NULL alias and device 1 = the real output,
both resolve to the same screen, so it paints red/"1" then immediately green/"2" over the top.
Looks like a glitch; is actually correct. Should detect devices sharing an `HMONITOR` and
label them together (`1 & 2 - same monitor`) instead of painting sequentially.
2. **The clash check compares device INDICES, not resolved monitors.** On that VM it reported
*"No duplicate device assignments"* while `main`→device 0 (primary alias) and `radar`→device 1
(`\\.\DISPLAY49`) were the **same physical monitor** — i.e. exactly the collision the check
exists to predict, reported as all-clear. Fix: treat a device with no `HMONITOR` as the
Windows primary, then compare resolved `HMONITOR`s rather than indices.
Neither can occur on a multi-monitor pod. Worth doing only if bench/VM testing starts relying on
the check being trustworthy.
- [ ] (Researched, NOT started) Make `-window` work for **all** modes — full findings in
**`WINDOWED-MODE.md`** (repo root, 2026-08-05). Headline: `-window` does not fail for MFD/
cameraship modes, it **silently disables** them, because `use_shgui` is derived from