Skip to content

v0.2.9 — Fix brush SIGSEGV on headless server

Choose a tag to compare

@alx alx released this 25 Apr 10:09
· 7 commits to main since this release

Fix

brush (built with eframe/wgpu) crashed with SIGSEGV ~28s after launch on every run. Root cause: the binary requires a display connection on Linux even in headless training mode — without DISPLAY set, Vulkan/X11 surface initialization fails fatally.

Changes:

  • scripts/pipeline.py: wrap brush invocation with xvfb-run -a to provide a virtual X11 framebuffer. wgpu still uses the NVIDIA GPU for compute via Vulkan; only the window surface goes through Xvfb.
  • Dockerfile: add xvfb package; create /usr/share/vulkan/icd.d and /etc/vulkan/icd.d directories so the NVIDIA Container Toolkit can inject the Vulkan ICD at runtime.