mirror of
https://github.com/storytold/photocraft.git
synced 2026-10-15 03:36:48 -04:00
On Windows, GPU UI test binaries crashed with STATUS_ACCESS_VIOLATION whenever two of their tests ran at once: arbitrary_rotation_preview 3 runs in 4 on main, and color_managed_canvas, crop_default_mode, drag_preview_canvas and full_res_preview at random. egui_kittest prefers a CPU adapter, which on Windows is WARP over DX12, and a dump puts the fault inside d3d10warp.dll with two WARP devices rendering on parallel test threads. Bare egui harnesses with no PhotoCraft code crash the same way, and Vulkan or GL never does. CI's Windows runners have no GPU, so they run on WARP too. Three binaries already held a per-binary lock for the same class of driver bug (Mesa llvmpipe and RADV, #194; libvulkan with NVIDIA and lavapipe). That lock now lives once in photocraft-testkit (`gpu_lock`, with the reasons) and every test in the twelve GPU test binaries without it takes it on its first line. Under nextest each test is its own process and the lock is free. Co-authored-by: Claude Opus 5.5 <[email protected]>