--disable-gpu是唯一真正禁用GPU渲染的启动参数,因其在Chromium进程初始化毫秒级内生效,而settings.json和GUI开关仅影响窗口动画等表层效果,无法干预已启动的GPU光栅化与合成器;VSCode≥1.80还需追加--disable-gpu-compositing,Wayland用户须再加--ozone-platform=wayland。

--disable-gpu 是唯一真正禁用 GPU 渲染的启动参数,所有其他方式(包括设置界面、settings.json、GUI 开关)都无效——它们根本触达不到 Chromium 的 GPU 进程初始化阶段。
为什么 --disable-gpu 必须在启动时传入
VSCode 基于 Electron(即 Chromium),GPU 渲染进程在主进程启动的毫秒级内就已创建完毕。等 settings.json 加载、GUI 设置读取完成时,GPU 光栅化和合成器早已跑起来。此时任何“关闭硬件加速”的操作,只影响窗口动画或标题栏透明度,无法回滚底层渲染路径。
常见错误:加了参数却没生效
-
process.argv里查不到--disable-gpu:说明参数没传进主进程(比如快捷方式路径含空格但没加英文双引号,或用了code命令但它是软链到错误位置) -
navigator.gpu返回一个对象(不是undefined):GPU 接口仍可访问,参数未生效 - 任务管理器 /
htop中仍有chrome_gpu_process或GPU Process:GPU 进程仍在运行,禁用失败 - 改了桌面快捷方式,但从开始菜单、WSL 终端执行
code .、或浏览器点vscode://链接仍花屏:这些入口不继承快捷方式参数,必须统一启动方式
各平台正确添加方式(注意细节)
Windows:右键桌面快捷方式 → 属性 → “目标”末尾加空格再填 --disable-gpu,例如:"C:\Program Files\Microsoft VS Code\Code.exe" --disable-gpu(双引号只包路径,不包参数)
macOS:终端执行 open -n -a "Visual Studio Code" --args --disable-gpu;若想 Dock 固定启动,需用 Automator 封装为 App 并传参
Linux:直接运行 code --disable-gpu;如用桌面图标,必须编辑 ~/.local/share/applications/code.desktop,把所有 Exec= 行(包括 [Desktop Action] 段里的)都改成 Exec=code --disable-gpu %F
VSCode ≥1.80 白屏/黑块必须追加的参数
Chromium 120+(VSCode 1.80+)拆分了 GPU 初始化路径:--disable-gpu 只停基础调用,但合成器(compositor)仍会尝试 GPU 合成。驱动异常时,它静默挂起,导致编辑区全白、侧边栏空白。
必须同时使用:
--disable-gpu--disable-gpu-compositing- Wayland 用户额外加
--ozone-platform=wayland(先确认echo $XDG_SESSION_TYPE输出wayland)
验证是否真生效:打开开发者工具控制台,输入 navigator.gpu 必须返回 undefined,且 process.argv 中必须同时包含两个 --disable- 参数。
真正起效的关键不在“加没加”,而在“有没有被主进程接收并执行”。漏掉进程清理、路径引号、多入口同步、或新版所需的组合参数,都会让禁用失效——这些点比参数本身更常出问题。











