fix(engine): scope WebGPU flag to hardware mode

This commit is contained in:
Miguel Ángel
2026-05-24 01:53:24 -04:00
parent b37236ed97
commit d97935b336
2 changed files with 6 additions and 1 deletions
@@ -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");
@@ -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(