Android の FPS スロットリングは、ゲームモード介入であり、バッテリー消費を抑えるためにゲーム実行時のフレームレートを安定させるものです。この介入は Android 13 以降で利用できます。
リフレッシュ レートの高い(90 Hz や 120 Hz など)ディスプレイを搭載した Android デバイスは増加しており、ほとんどのゲームは高い FPS でペースを維持しようとします。しかし、通常はパフォーマンスやバッテリー駆動時間の優先に関するユーザーの好みは考慮されません。これにより次の問題が生じます。
一貫して高い FPS でペースを維持できないゲームは、FPS が不安定または不均一になります。
高い FPS は、バッテリーの消耗が早くなるため、ユーザーに好まれない場合があります。
FPS スロットリングで可能なのは、フレームレートの「制限」のみです。たとえば、ゲームが当初 60 FPS で動作していた場合、FPS スロットリング介入で 120 FPS にすることはできませんが、40 FPS や 30 FPS にスロットリングすることはできます。
FPS スロットリングを使用することで、最大で 50% の GPU 電力と 20% のシステム電力を削減できます。また、スムーズかつジャンクの少ないフレームレートで、ペーシングされていないゲームを動作させることができます。
ペーシングされていないゲームでは、多くの場合、ピーク フレームレートは高くなりますが、フレーム時間の分散は大きくなります。これは、パフォーマンスに関するプレーヤーの認識に大きく影響します。FPS スロットリング介入で可能なのは、ペーシングされていないゲームのフレーム ペーシングをプラットフォーム側から実現することだけです。
FPS スロットリング介入の結果は、使用するデバイスや環境条件などの要因によって変化します。
アプリによるフレーム ペーシング実装との相互作用
アプリによるフレーム ペーシング実装と FPS スロットリングの両方が適用される場合、一般的に最終的なフレームレートは目標フレームレートよりも低くなります。
始める
ここでは、Android Debug Bridge(adb)を使用し、FPS スロットリングをセットアップして使用する方法を説明します。
ゲームモード介入を有効にする
ゲームモード介入を有効にするには、次のコマンドを使用します。
adb shell device_config put game_overlay <PACKAGE_NAME> <CONFIG>
FPS 介入の設定
目標の FPS スロットリング介入を設定するには、device_config
コマンドを使用します。以下に、パフォーマンス モードとバッテリー モードの FPS スロットリングを設定する例を示します。
adb shell device_config put game_overlay <PACKAGE_NAME> mode=2,fps=90:mode=3,fps=30
パラメータの説明:
mode
[2|3]:2
と3
は、それぞれパフォーマンス モードとバッテリー モードです。fps
[0|30|40|45|60|90|120]: 使用するデバイス(120、90、60 Hz のどのデバイスか)に応じて最高リフレッシュ レートの約数となるフレームレートを選ぶことをおすすめします。0
がデフォルト値です。
各ディスプレイ タイプでサポートされているフレームレートは次のとおりです。
- 60 Hz のディスプレイ: 60 FPS、30 FPS
- 90 Hz のディスプレイ: 90 FPS、45 FPS、30 FPS
- 120 Hz のディスプレイ: 120 FPS、60 FPS、40 FPS、30 FPS
結果の確認
結果を表示して分析するには、FPS カウンタを確認するか、Perfetto トレースをキャプチャします。120 FPS で動作しているゲームで FPS カウンタを表示する方法の例を次に示します。
FPS カウンタを表示する
FPS スロットリングの設定を確認するには、ゲームを実行して、ゲーム ダッシュボードで FPS カウンタを開きます。手順は次のとおりです。
ゲームの実行中に、下にスワイプし、ゲーム ダッシュボードのアイコンをタップします。
[FPS] ボタンをタップして、FPS カウンタをオンにします。
[X] ボタンをタップして、ゲーム ダッシュボードを閉じます。矢印を右にスワイプすると、FPS カウンタが表示されます。
Perfetto トレースをキャプチャする
ゲームのパフォーマンスを詳しく知るには、Perfetto トレースの実施をおすすめします。トレースの実施について詳しくは、クイックスタート: Android でトレースを記録するをご覧ください。
トレースを実施するときは、android.game_interventions
データソースを使用します。トレースが完了すると、[Trace Viewer] ページが表示されます。ナビゲーション バーで [Info and stats] を選択し、[Game mode and intervention] のリストを表示します。次に例を示します。
FPS スロットリング介入は「fps=X」の形式で示されています。ここで、X
はそのゲームモードのスロットリング FPS です。0
がデフォルト値です。