GH-hosted ubuntu-latest cannot run window-bound GL tests: - bare `xvfb-run cargo test` fails with `GLXBadWindow`: Xvfb's GLX visuals lack `GLX_WINDOW_BIT`, so `glXCreateWindow` returns BadWindow. - `xvfb-run -s "+extension GLX +render -noreset"` + `LIBGL_ALWAYS_SOFTWARE=1 GALLIUM_DRIVER=llvmpipe MESA_GL_VERSION_OVERRIDE=4.5` produced the same GLXBadWindow error (run 25358253410): xvfb's GLX implementation does not support `GLX_WINDOW_BIT` regardless of the software-rasterizer. This is a known constraint across the Rust gfx ecosystem — bevy, rust-skia and iced CI all skip window-bound GL tests on hosted Linux runners and verify only `cargo build / test / clippy` link-time correctness. The dep-stack probe's link half (skia-safe + glutin + glow + winit) is already proven by the Linux `cargo build / test / clippy --all-targets` steps that pass before this gate. Mirror the existing `WINDOWS_GPU_DEFERRED_NO_RUNNER` deferral pattern (spec §8.2): - probe test body early-returns with `LINUX_GPU_DEFERRED_NO_RUNNER` when the env var is set; CI step exports it. - locally on a real Linux desktop the env var is unset, so the full cross-API state + readback verifications still run. macOS retains the full window+GL path (CI + local), which alone covers spec §7.2(2) "cross-API GL state visibility" and §6.2(c) "full readback chain" — the only verifications that exercise live GPU semantics. Windows + Linux on hosted runners verify the toolchain links and the probe code compiles, which is what the spec requires for those targets. |
||
|---|---|---|
| .. | ||
| build-electron.yml | ||
| ci.yml | ||
| docker.yml | ||
| publish-cli.yml | ||
| rust-check.yml | ||
| wasm-bundle-check.yml | ||