eaglesakuraの技術ブログ

技術的な話題とか、メモとか。

Ubuntu 19.04をインストールした環境でAndroid Emulatorが激重になる問題の対処

状況

問題の観察

  • QEMUはインストール済みで、KVMは正常起動する
  • Dockerが動作しているので、仮想環境はONになっている
  • たまに高速に動作する
  • けど起動してしばらくすると遅くなる

さらなる観察

  • レンダリングをソフトウェアレンダラに変えるとそこそこ早く動作する
    • ただし、CPUを喰う
  • レンダリングをハードウェアレンダラに変えると、起動直後は軽快になる

自分の行動を観察

なぜ移動させると遅いのか?

  • Ubuntu 19.04から、ディスプレイ拡大率を100%, 200%以外に設定できる
  • その時は125%に設定していた
    • ちょっと解像度のいいThinkpadを買ってた
  • 画面横幅を125とした時、100よりも右側に寄せるとレンダリングが遅くなる事象を発見する

解決策を探す

  • 状況の観察から、考えられる問題は
    • GPUが正常に使われていない
    • Ubuntuのスケーラーが正常に動作していない

さらなる観察をする

  • GPUの問題であれば、OS全体に影響があるはずである
  • ウィンドウをマウスでグリグリ移動させる
    • 125%のときにチラツキが発生する
  • 100%のときとは明らかに異なるチラツキ
    • ディスプレイ品質ではなく、グラフィクスエンジンの問題に見える
    • シングルバッファレンダリングのような挙動だ
  • 100%に解像度を戻し、WebGLベンチマークを回す

改善への道

  • チラツキの改善に関する記事を探す
  • 設定する
  • 再起動する
  • 100%の拡大率で、無事にWebGLベンチマークで60fps動作!
  • 125%の拡大率にする
    • 動作が40〜50fpsに落ちる
    • どうやら、整数倍スケール以外の拡大率を指定するとレンダリングが遅くなるらしい
    • 今後に期待
      • OpenGLドライバ(mesa)を2019-04-23に更新したら55〜60fpsまで改善した
  • その状態でAndroid Emulatorを起動
    • ほぼ正常と思える速度でAndroid Emulatorが動作
    • 右端に寄せても問題ない

ペンギンハイウェイは面白い

  • BDを購入してから、息子も娘も毎日のようにペンギンハイウェイを観てる