lightcraft/docs
hxw 5a537d5d39 LR-BEHAV-GPU: no render is inside the GPU driver when the app quits (issue #620)
A render still running on a worker thread while the process exits crashes in the
driver (SIGSEGV in the NVIDIA Vulkan driver on Linux), where neither the panic
hook nor catch_unwind helps: pool workers were detached, the devices are statics
that are never dropped, and nothing on the way out waited for GPU work.

- gpu: every entry into a device (render, device creation, pool trim, denoise
  runner and tiles) is counted as work in flight (exit.rs). begin_shutdown()
  lets nothing new in; wait_idle(timeout) waits for what is inside.
- preview: JobPool keeps its workers. shutdown(timeout) and Drop discard the
  queued jobs and wait, bounded, for the running ones (2 s on drop); never for
  the calling thread, and not twice.
- engine: a render job caught by the shutdown gives up instead of rendering on
  the CPU, so quitting doesn't wait for it.
- app: on_exit ends with LightcraftApp::shutdown (2 s for everything), after
  settings and library are saved; the macOS menu-bar Quit goes through on_exit.

Not changed: the export, merge, denoise and import threads are still detached;
their GPU work goes through the gate, their CPU work is cut off at exit as before.

Tests: pool drop waits / is bounded / survives a panicked job and its own job
dropping it; the gate; GPU renders refused and the device not created after
begin_shutdown; the app's shutdown leaves no render worker. The crash itself
needs Linux + NVIDIA and was not reproduced here (Windows, DX12): 9 of 9 quits
of the app mid-render exit with code 0 in under 0.8 s.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 00:46:24 -05:00
..
brand Licensing: MIT OR Apache-2.0 files, NOTICE, ArtCraft brand terms 2026-10-04 10:05:02 -04:00
images docs: README (MCP, CLI, export, status, contributing), AGENTS.md (asset enforcement, crash recovery, testing/perf), screenshots re-captured with Inter 2026-09-30 23:52:34 -04:00
showcase M1.4: crash-safe catalog persistence (op log + snapshot) 2026-09-30 23:40:40 -04:00
ai-masks.md Merge remote-tracking branch 'origin/main' into fix-359 2026-10-08 23:57:36 -04:00
camera-preview-colour.md Merge PR #459 2026-10-09 11:38:44 -04:00
contributors.md About: contributor and model credits compiled in (grab bag + table, self-submitted names) (#252) 2026-10-07 21:22:08 -04:00
control-protocol.md LR-BEHAV-HEADLESS: keep CPU snapshots isolated from saved preferences 2026-10-09 13:19:47 +10:00
cr3.md Merge PR #465 2026-10-09 08:34:42 -04:00
denoise.md LR-EDIT-DETAIL-DENOISE: address installation and model-policy review 2026-10-08 22:07:23 -04:00
faces.md LR-PREF-PEOPLE: update pure-Rust recognition and preserve valid model replacements 2026-10-08 22:29:31 -04:00
gpu-pipeline.md LR-BEHAV-GPU: no render is inside the GPU driver when the app quits (issue #620) 2026-10-10 00:46:24 -05:00
library-shortcuts.md Library: the Photo Grid label footer is translucent; pt-br for "Color label cleared" (#308) 2026-10-08 17:39:23 +00:00
lightroom-catalog-import.md PR218: document optional-data and recovery warnings 2026-10-09 00:17:24 +05:30
localization-de.md M16: add German localization using the existing catalogs 2026-10-08 07:27:32 +02:00
localization-es.md Fix #371: Spanish interface 2026-10-08 20:20:17 +00:00
localization-ja.md LR-BEHAV-LOCALIZE: compile-checked tr_format! for every language catalog 2026-10-07 06:13:44 -04:00
localization-pt-br.md i18n: add Brazilian Portuguese (pt-br) UI translation 2026-10-07 17:03:20 -03:00
localization-ru.md i18n: German and Russian follow-ups (#265, #264) 2026-10-08 18:26:56 +00:00
localization-zh-hans.md fix #425: Restore Simplified Chinese font rendering 2026-10-09 15:12:33 +08:00
localization-zh-hant.md fix #425: Restore Simplified Chinese font rendering 2026-10-09 15:12:33 +08:00
localization.md Fix #371: Spanish interface 2026-10-08 20:20:17 +00:00
mcp.md MCP: add export progress and cancellation between photos 2026-10-08 23:02:21 -07:00
merge.md Merge main (Photo Merge); M1.14b: stack merge results with their sources 2026-10-01 11:00:51 -04:00
parity.md LR-BEHAV-GPU: no render is inside the GPU driver when the app quits (issue #620) 2026-10-10 00:46:24 -05:00
raf-compression.md M11.4: harden RAF validation and camera profile fallback 2026-10-08 11:23:55 +02:00
raf-corpus.sha256 M11.4: harden RAF validation and camera profile fallback 2026-10-08 11:23:55 +02:00
releasing.md fix #425: Restore Simplified Chinese font rendering 2026-10-09 15:12:33 +08:00
tint-direction.md Issue #188: Tint sign documented as landed (DNG / Lightroom sign) 2026-10-08 17:29:47 +00:00
vertical-watermarks.md M16: keep grapheme clusters intact in vertical watermarks 2026-10-09 09:02:24 +09:00
web.md Merge PR #460 2026-10-09 09:25:59 -04:00
whats-new.md Merge PR #273 2026-10-09 12:04:03 -04:00
xmp-interop.md LR-IMP-PROFILES: red / green / blue curves only with the master curve; neutral test values 2026-10-08 16:25:25 -07:00