会社で使っているPCはグラフィックがCPU内蔵なので,使っているUbuntu(22.04 r3)はGPU周りのエラーがよく出る。 通常はEmacsを使っているが,たまに比較用とかで使うdebパッケージでインストールしたVSCode (1.86.2)で突然エラーが出た。 多分アップデートしたタイミングだ。
GUIのショートカットからではすぐに画面が消えるので,コマンドラインから確認してみる。
$ code --verbose 少し略 [main 2024-02-19T05:24:03.184Z] Starting VS Code [main 2024-02-19T05:24:03.184Z] from: /usr/share/code/resources/app ... 中略 ... [main 2024-02-19T05:24:03.233Z] lifecycle (main): phase changed (value: 3) [main 2024-02-19T05:24:03.233Z] resolveShellEnv(): skipped (VSCODE_CLI is set) [main 2024-02-19T05:24:03.233Z] update#setState idle [121960:0219/142403.287436:ERROR:gpu_process_host.cc(995)] GPU process exited unexpectedly: exit_code=133 [121960:0219/142403.287447:WARNING:gpu_process_host.cc(1364)] The GPU process has crashed 1 time(s) [121960:0219/142403.480478:ERROR:gpu_process_host.cc(995)] GPU process exited unexpectedly: exit_code=133 [121960:0219/142403.480490:WARNING:gpu_process_host.cc(1364)] The GPU process has crashed 2 time(s) [121960:0219/142403.657645:ERROR:gpu_process_host.cc(995)] GPU process exited unexpectedly: exit_code=133 [121960:0219/142403.657657:WARNING:gpu_process_host.cc(1364)] The GPU process has crashed 3 time(s) [121960:0219/142403.792050:ERROR:gpu_process_host.cc(995)] GPU process exited unexpectedly: exit_code=133 [121960:0219/142403.792063:WARNING:gpu_process_host.cc(1364)] The GPU process has crashed 4 time(s) [121960:0219/142403.925697:ERROR:gpu_process_host.cc(995)] GPU process exited unexpectedly: exit_code=133 [121960:0219/142403.925709:WARNING:gpu_process_host.cc(1364)] The GPU process has crashed 5 time(s) [121960:0219/142404.060553:ERROR:gpu_process_host.cc(995)] GPU process exited unexpectedly: exit_code=133 [121960:0219/142404.060565:WARNING:gpu_process_host.cc(1364)] The GPU process has crashed 6 time(s) [main 2024-02-19T05:24:04.074Z] resolveShellEnv(): skipped (VSCODE_CLI is set) [121960:0219/142404.153426:ERROR:gpu_process_host.cc(995)] GPU process exited unexpectedly: exit_code=133 [121960:0219/142404.153439:WARNING:gpu_process_host.cc(1364)] The GPU process has crashed 7 time(s) [121960:0219/142404.245336:ERROR:gpu_process_host.cc(995)] GPU process exited unexpectedly: exit_code=133 [121960:0219/142404.245348:WARNING:gpu_process_host.cc(1364)] The GPU process has crashed 8 time(s) ... 以下略
のようにGPUエラーが出まくっている。
--disable-gpuオプションも効かずどうしようかと思っていたが,
issue
を見ると,--disable-accelerated-video-decodeが効くらしい。
とりあえずはGUIのショートカットから利用できればいいので,暫定の対策は
cp /usr/share/applications/code.desktop ~/.local/share/applications/
のように,OSのVSCodeのデスクトップファイルを個人用のフォルダにコピーして
から,~/.local/share/applications/code.desktopを次のように書き換える。
といってもExecがある行に--disable-accelerated-video-decodeを起動オプションに追加するだけなので単純だ。
なお,jsonの設定ファイルでの書き換えは今のところ効かないようだ。
[Desktop Entry] Name=Visual Studio Code Comment=Code Editing. Redefined. GenericName=Text Editor Exec=/usr/share/code/code --unity-launch --disable-accelerated-video-decode %F Icon=vscode Type=Application StartupNotify=false StartupWMClass=Code Categories=TextEditor;Development;IDE; MimeType=text/plain;inode/directory;application/x-code-workspace; Actions=new-empty-window; Keywords=vscode; [Desktop Action new-empty-window] Name=New Empty Window Name[de]=Neues leeres Fenster Name[es]=Nueva ventana vacía Name[fr]=Nouvelle fenêtre vide Name[it]=Nuova finestra vuota Name[ja]=新しい空のウィンドウ Name[ko]=새 빈 창 Name[ru]=Новое пустое окно Name[zh_CN]=新建空窗口 Name[zh_TW]=開新空視窗 Exec=/usr/share/code/code --new-window --disable-accelerated-video-decode %F Icon=vscode
code --verbose --disable-accelerated-video-decode
の出力メッセージを確認すると,--disable-accelerated-video-decodeはVSCodeは知らない
オプションなのでスルーされるが,Electron/CHromiumでは有効なオプションなので,
そちら側で読み込んでうまく動いているらしい。
Warning: 'disable-accelerated-video-decode' is not in the list of known options, but still passed to Electron/Chromium.
本来CPU内蔵グラフィックは枯れたハードなので,あまりエラーは発生しないはずなんだけど, 今のPCはGPUありの方が普通(パフォーマンス的に楽)なので,何故かエラーが発生しやすい印象。
2024/2/20追記
ubuntuのバージョンを確認したところ,いつの間にか22.04.4でした…