mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-10-14 19:26:56 -04:00
On a desktop with a Ryzen integrated GPU without a monitor and an NVIDIA card driving both monitors, Automatic (power saving on Windows) picked the integrated GPU; Windows presented every frame across adapters and the integrated GPU's driver reset, losing the graphics device or taking every monitor down for minutes (same bug as pdfcraft#378). Automatic now asks the system which GPU drives which display (Windows: EnumDisplayDevices through winsafe; Linux: /sys/class/drm) and ranks the GPU driving a display, and among those the primary display's, ahead of the power preference. Where the system can't say, or no adapter's PCI ids match (OpenGL, Metal), the order is the power preference's as before, so nothing gets worse. Power Saving and High Performance chosen by the user, and WGPU_POWER_PREF, keep ordering by kind alone. The log now lists the display GPUs, which adapters drive a display, and the adapter drawn on with the reason, the first question in every black-window report. Tests cover the device-id parser, the rankings (desktop with all monitors on the discrete GPU, hybrid laptop, a monitor on each GPU, no match), the sysfs reader and a live EnumDisplayDevices call. Co-Authored-By: Claude Fable 5.1 <[email protected]> Claude-Session: https://claude.ai/code/session_017ZwZjADUZP4VzvrFGpiZch