mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-10-24 09:46:59 -06:00
When a graphics driver crashed the process while the window started, as Intel's Direct3D 12 driver (igd12umd64.dll) did on an Intel UHD Graphics 605 (#2243), the next start picked the same adapter again. The restart without a failing adapter and the first-frame watch run inside the process, so the crash ended them along with it. Each start now writes graphics-start.json in the log folder before the graphics start, adds the adapter once one is picked, and clears both when the first frame reaches the screen or the app ends without crashing. A start that finds an earlier start still recorded there leaves that adapter out, as a restart does, logs it and shows a note in the status bar. When the crash came while the adapters were being listed (wgpu's Direct3D 12 backend creates a device on each GPU to list it), the next starts list OpenGL's adapters alone, except on macOS. The adapters stay left out until the app version or the Graphics Processor preference changes, a start shows its first frame on one, or no adapter is left. WGPU_BACKEND and WGPU_ADAPTER_NAME choose regardless of the record. Docs: docs/development.md, docs/target-app-parity.md.