mirror of
https://github.com/storytold/designcraft.git
synced 2026-10-26 03:06:56 -06:00
- Recovery: file.recovery.open moves each entry to the reopened document's uid (written before the old one is removed), so recovered documents stay on disk until saved or closed, also when the app restarts on another adapter or stops before its first recovery save. - First-frame watch: a late first frame is logged and noted in the status bar. The adapter counts as hanging only when the UI thread has been stuck outside the app's code (logic/ui mark entry and exit) with no progress for 60 s while the window isn't known to be minimized, occluded or unfocused. The watch asks for a repaint on each look, so an idle UI ends it. VectorCraft restarts on the late frame alone, which a held-back compositor or a long compose can set off. - Software renderers (WARP, llvmpipe) are passed over while another backend is left; once no hardware adapter of any backend could show the window, the app starts again with them allowed, once. - A restart clears gpu.json's backend entry just before exec or spawn and puts it back when starting again fails. Backends a restart left out are no longer recorded as failed. - The watch ends a hung process with TerminateProcess on Windows. - The skip list travels as the restarted app's --gpu-skip= argument instead of an environment variable, so processes the app starts don't inherit it.