diff --git a/packages/engine/src/services/browserManager.test.ts b/packages/engine/src/services/browserManager.test.ts index c2b118e53..1f92aaf6b 100644 --- a/packages/engine/src/services/browserManager.test.ts +++ b/packages/engine/src/services/browserManager.test.ts @@ -20,6 +20,7 @@ describe("buildChromeArgs browser GPU mode", () => { it("uses SwiftShader software GL by default for reproducible local renders", () => { const args = buildChromeArgs(base); expect(args).toContain("--enable-features=CanvasDrawElement"); + expect(args).not.toContain("--enable-unsafe-webgpu"); expect(args).toContain("--use-gl=angle"); expect(args).toContain("--use-angle=swiftshader"); expect(args).toContain("--enable-unsafe-swiftshader"); @@ -28,6 +29,7 @@ describe("buildChromeArgs browser GPU mode", () => { it("uses Metal-backed ANGLE for hardware browser GPU mode on macOS", () => { const args = buildChromeArgs({ ...base, platform: "darwin" }, { browserGpuMode: "hardware" }); + expect(args).toContain("--enable-unsafe-webgpu"); expect(args).toContain("--use-gl=angle"); expect(args).toContain("--use-angle=metal"); expect(args).toContain("--enable-gpu-rasterization"); diff --git a/packages/engine/src/services/browserManager.ts b/packages/engine/src/services/browserManager.ts index b1ecdd09d..6ea640361 100644 --- a/packages/engine/src/services/browserManager.ts +++ b/packages/engine/src/services/browserManager.ts @@ -504,7 +504,6 @@ export function buildChromeArgs( "--disable-setuid-sandbox", "--disable-dev-shm-usage", CANVAS_DRAW_ELEMENT_FEATURE_FLAG, - WEBGPU_FLAG, "--enable-webgl", "--ignore-gpu-blocklist", ...getBrowserGpuArgs(browserGpuMode, platform), @@ -538,6 +537,10 @@ export function buildChromeArgs( "--disable-features=AudioServiceOutOfProcess,IsolateOrigins,site-per-process,Translate,BackForwardCache,IntensiveWakeUpThrottling", ]; + if (browserGpuMode !== "software") { + chromeArgs.push(WEBGPU_FLAG); + } + // BeginFrame flags — only when using chrome-headless-shell on Linux if (options.captureMode !== "screenshot") { chromeArgs.push(