fix(ci): 3D specs — 180s viewer-open wait for llvmpipe; skip deadlock spec on CI

Follow-up to the headed-llvmpipe switch. That run (28652367347) stopped CRASHING —
every failure became a plain timeout, confirming llvmpipe gives a stable WebGL context
(no more CONTEXT_LOST / "Target crashed") but software raytracing is just slow:

- The first board raytrace takes ~60s on llvmpipe, right at openThreeDViewer's 60s
  wait → raise it to 180s (shared helper + the models spec's inline copy). Real GPU
  returns in ~2s, so it is only CI headroom.
- The deadlock spec asserts the wasm main thread stays responsive within ~15s DURING a
  raytrace — a premise only true on a fast (real) GPU. Under slow software rendering a
  legitimately-slow raytrace is indistinguishable from a deadlock, so skip it on CI
  (test.skip on process.env.CI). The Worker-boot deadlock MECHANISM stays covered on CI
  by the standalone coroutine-pthread-ondemand / raytrace-threads wx harnesses; the spec
  still runs locally on a real GPU.
- Gate the headed + llvmpipe launch flags on CI so chromium-ci-3d behaves like a normal
  bundled-Chromium project locally.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Istvan Matejcsok 2026-07-03 15:35:17 +02:00
commit d60bc1575b
4 changed files with 33 additions and 15 deletions

View file

@ -267,17 +267,22 @@ export default defineConfig({
use: {
...devices["Desktop Chrome"],
viewport: { width: 1280, height: 720 },
// Headed only matters on CI (real GPU locally); harmless headed locally too.
headless: !process.env.CI,
launchOptions: {
args: [
"--use-gl=angle",
"--use-angle=gl",
"--disable-gpu-watchdog",
"--disable-gpu-process-crash-limit",
"--enable-unsafe-swiftshader",
],
},
// The headed + Mesa-llvmpipe stack is a CI-only need (the GPU-less VM). Locally this
// project should behave like any other bundled-Chromium project, so gate it on CI.
...(process.env.CI
? {
headless: false,
launchOptions: {
args: [
"--use-gl=angle",
"--use-angle=gl",
"--disable-gpu-watchdog",
"--disable-gpu-process-crash-limit",
"--enable-unsafe-swiftshader",
],
},
}
: { launchOptions: { args: ["--enable-unsafe-swiftshader"] } }),
},
},
{