2018年9月13日木曜日

GNOME-shell とメディアプレイヤー

GNOME-shell とメディアプレイヤー

Solaris 11.4 上で動画を再生すると gnome-shellXorg の CPU 負荷が上がる件。

これは gnome-shell がコンポジット型であるためと理解。

非コンポジット型の場合、 基本的な描画処理はメディアプレイヤーと X サーバの間のみで行われる。 コンポジット型の場合、描画内容は X サーバからウィンドウマネージャーに送られ、 様々な処理を施された後に X サーバに送られ、実際の表示が行われる。

メディアプレイヤーで動画を再生する場合、例えば1秒間に30回の描画が行われる。 そして、そのたびに X サーバとウィンドウマネージャー間の通信が行われ、 ウィンドウマネージャー側の処理も行われ、 それらのためのコンテキストスイッチも発生する。 これが負荷の要因。

ちなみに、_NET_WM_BYPASS_COMPOSITOR を設定しても変化は見られず。

$ xprop -format _NET_WM_BYPASS_COMPOSITOR 32c -set _NET_WM_BYPASS_COMPOSITOR 1

また、mpv を全画面モードで実行すると CPU 負荷の問題は発生しない事を確認。 このとき、_NET_WM_BYPASS_COMPOSITOR は 1 に設定される。 これを外部的に 0 に変更したとしても、CPU 負荷の問題は発生しない。

0 件のコメント:

コメントを投稿