my cognition

書きたいことを書きます。

XSplitやOBSでChromeやVS Codeの画面が取り込めない場合は --disable-gpu-compositing を使おう

tl;dr

  • 起動オプションに --disable-gpu-compositing をつければ大体解決する
  • アプリケーションのGPU支援機能を停止すると、基本的にパフォーマンスは落ちるので注意

モチベーション

  • XSplitを使用して配信する際、ChromeVS Codeを使いたいが映らないためモニターキャプチャをしていたが、放送事故が起きかねないので独占ウィンドウキャプチャしたかった
  • GPUレンダリング、その他の機構について興味がわいた

結果

  • tl;drの通り、--disable-gpu-compositingを付けるだけでよい。
  • アプリケーションごとにGPU支援機能を停止する方法は異なるので、もし映らないアプリケーションがあれば、全てのGPU支援機能をオフにするような設定を探すと良い

f:id:kitkatayama:20190324003737p:plain
chromeに --disable-gpu-compositing オプションを付ける

パフォーマンス比較

※XSplitで非均等な負荷がかかっているため、参考程度に。

youtu.be

chrome://gpu の比較

  • Chromeのオプションを見ることで、何がONで何がOFFなのか何となく知ることができる

f:id:kitkatayama:20190324001618p:plainf:id:kitkatayama:20190324001627p:plainf:id:kitkatayama:20190324001637p:plain
オプション無し 、--disable-gpu-compositing、--disable-gpu

あとがき

  • 最近Chrome重くなったなーと思ってたら、配信向けにハードウェア アクセラレーション外してから1か月以上経過していた。アホだった
  • 配信用に--disable-gpu-compositingのオプションを付けたショートカットを準備していると便利
  • 参照URLにChromeレンダリング概要やオプション一覧が載っている。参考になれば。

参照