私の環境(Debian)ではVLCなどの再生ソフトで動画を再生しながら作業をするとウィンドウの移動やサイズ変更が異様に重くなる事が多いのですが、CPUの負荷は全然なく、なぜ重いのか不思議でした。ある日ひょっとしてグラボかも?と思い、nVIDIA settingsを開いてみたらビンゴでした。GPU UtilizationつまりGPUの使用率が90% を超えています。
このPCではどうせLinuxだしGPUはしょぼいのを入れておいても問題ないだろうと思ってファンレスのGeForce210を入れていました。しかし、GPUの使用率が90%を超えているのでGPUに余裕がなくなり、ウィンドウアクセラレーションなどにも影響が出ても不思議はありません。
原因の切り分けを行うため、試しに手元あったGeForce 9600GTを取り付けて動画を再生してみました。
すると動画再生時のGPUの使用率が20%以下となりました。ウィンドウの移動が重くなる現象もなくなりました。
ハードウェアアクセラレーションを無効にして回避
GeForce210には動画再生時、GPUを使ってデコードを行いCPUの負担を軽くする機能があり、ハードウェアアクセラレーションだとか動画再生支援などと呼ばれています。この機能を使うとCPUの負荷が減るのでとても助かるのですが、GPUが非力だと前途のようにウィンドウの移動が重くなったり副作用が出てきてしまいます。そんなときはあえて無効にしてGPUの負担を減らす事で重くなるのを防げます。ちなみにこの機能を無効にする分CPUの負荷は高くなるのでCPUに余裕がないといずれにせよつらくなります。
VLCの場合入力/コーデックの中にあります。”Hardware-accelerated decoding”がデフォルトでは「自動」となっています。ここを「無効」にするとハードウェアアクセラレーションを一切使わなくなります。
無効にした状態で動画を再生すると、Video Engine Utilizationが全く増えなくなります。この状態になっていれば無事無効になっています。
GeForce210の場合GPUが非力すぎるのでハードウェアアクセラレーションは無効にしておいた方が結果的に快適ですが、フルHDの動画を2つ同時に開いた状態で作業するよやはりウィンドウの移動等がもっさりしてきます。やっぱりGPUはそれなりの性能のものがあった方が良さそうです。