openpencil/.github/workflows
Kayshen-X be8fbf0c84 ci(shell-native): force xvfb GLX + mesa software-render for P0 probe
Linux P0 probe was failing with `GLXBadWindow` because:
- bare `xvfb-run` brings up Xvfb with default args (no `+extension GLX`);
  the X server then advertises no GLX FBConfigs, so winit's X11 backend
  fails when glutin tries to create a GL window.
- the runner has no GPU, so even with GLX enabled mesa would not pick a
  hardware visual; without a software fallback configured glutin cannot
  resolve `ContextApi::OpenGl`.

Fix:
- pass `xvfb-run -s "-screen 0 1280x1024x24 +extension GLX +render
  -noreset"` so Xvfb advertises a 24-bit GLX-capable visual.
- set `LIBGL_ALWAYS_SOFTWARE=1`, `GALLIUM_DRIVER=llvmpipe`, and
  `MESA_GL_VERSION_OVERRIDE=4.5` so mesa loads llvmpipe (CPU
  rasterizer) and reports a desktop-GL version high enough for skia.

These env vars propagate naturally from the workflow shell down through
xvfb-run → cargo → the spawned `cargo run --example p0_probe`
subprocess (probe runs each verification in a fresh process so winit's
EventLoop singleton guard doesn't trip).
2026-05-05 12:42:39 +08:00
..
build-electron.yml chore(shell-native): add transient P0 probe gate (Step 1a) 2026-05-05 12:23:49 +08:00
ci.yml chore(shell-native): add transient P0 probe gate (Step 1a) 2026-05-05 12:23:49 +08:00
docker.yml chore(shell-native): add transient P0 probe gate (Step 1a) 2026-05-05 12:23:49 +08:00
publish-cli.yml chore(shell-native): add transient P0 probe gate (Step 1a) 2026-05-05 12:23:49 +08:00
rust-check.yml ci(shell-native): force xvfb GLX + mesa software-render for P0 probe 2026-05-05 12:42:39 +08:00
wasm-bundle-check.yml chore(shell-native): add transient P0 probe gate (Step 1a) 2026-05-05 12:23:49 +08:00