Cypress启动报错gpu_init.cc(441) passthrough is not supported GL is Swiftshader如何修复
Cypress
gpu_init.cc passthrough is not supported GL is Swiftshader 报错修复方案 - 报错本质是Ubuntu无头服务器无可用GPU,Cypress调用的Chrome内核自动 fallback 到Swiftshader软件渲染器,和GPU passthrough逻辑不兼容导致,和其他用户报错末尾为
disabled的场景同属GPU渲染链路问题,修复逻辑一致。
方案1:修改Cypress配置永久生效
在项目的cypress.config.js(或cypress.config.ts)中添加如下配置,原有配置无需删除:
const { defineConfig } = require('cypress') module.exports = defineConfig({ e2e: { // 保留你原有的e2e配置 }, // 新增以下配置 chromeWebSecurity: false, args: [ '--disable-gpu', '--disable-software-rasterizer', '--no-sandbox', '--disable-dev-shm-usage' ] })
参数说明:
--disable-gpu:直接禁用GPU硬件加速,避开GL渲染校验--disable-software-rasterizer:关闭Swiftshader软件渲染器,对应你报错中的特殊标识--no-sandbox:关闭Chrome沙箱机制,适配Linux非root用户运行场景--disable-dev-shm-usage:规避Linux环境共享内存不足导致的浏览器崩溃问题
方案2:启动命令临时添加参数(适合CI/CD流水线场景)
不需要修改配置文件,直接在启动Cypress的命令中追加参数即可:cypress run --browser chrome --headless --args="--disable-gpu --disable-software-rasterizer --no-sandbox --disable-dev-shm-usage"
方案3:补充安装Ubuntu系统依赖
如果上述配置修改后仍有报错,说明你的Ubuntu远程机器缺少浏览器运行所需的基础依赖,执行以下命令安装即可:
sudo apt update && sudo apt install -y \ libgtk2.0-0 \ libgtk-3-0 \ libgbm-dev \ libnotify-dev \ libgconf-2-4 \ libnss3 \ libxss1 \ libasound2 \ libxtst6 \ xauth \ xvfb
内容的提问来源于stack exchange,提问作者Pazulay
相关产品推荐
相关产品推荐

