ゲーム読み込み時間のパフォーマンス ブースト

ゲームの読み込み時間を改善するため、Android 13 では、Android 動的パフォーマンス フレームワーク(ADPF)に GAME_LOADING という名前の新しい電力モードが導入されています。GAME_LOADING は、ゲームアプリが読み込み状態にあるかどうかを Power HAL に通知して、Power HAL が読み込みブーストを提供できるようにします。この通知により、Power HAL はゲーム読み込みを高速化できるパフォーマンス ブースト対策を提供できます。

このページでは、ゲームアプリが Power HAL にゲーム状態を渡す方法、デバイスでこれを利用するために Power HAL を構成する方法、Power HAL 実装をテストする方法について説明します。

読み込み状態の検出と通知

読み込みブーストモードは、ゲームアプリが読み込み状態にあるときにそれを検出して Power HAL に通知します。Android 13 では、デベロッパー向けの API に isLoading という新しいゲーム状態が導入されています。このゲーム状態は、Power Manager サービスの新しい GAME_LOADING 電力モードを使用して、トップレベルのゲーム状態を Power HAL に通知します。Power HAL は、ゲーム読み込み状態の通知を受け取ると、プラットフォームのパフォーマンス設定と CPU クロックレートを調整できます。これにより、読み込み時間が改善されます。OEM は、Power HAL に読み込みブーストを実装してカスタマイズすることを選択できます。詳しくは、Power HAL 実装をカスタマイズするをご覧ください。

ゲームが読み込み中であることを通知するために、ゲームアプリはゲーム ダッシュボードを使用して Game Manager に isLoading 状態を設定します。Game Manager はこの状態を Game Manager サービスに渡します。このサービスは、新しい GAME_LOADING 電力モードで setPowerMode を使用して Power Manager サービスを呼び出します。GAME_LOADING 電力モードは、ゲームが読み込み状態にあることを Power HAL に通知し、Power HAL が読み込みブーストを提供できるようにします。

次の図は、読み込み状態を通知するためにアプリから Power HAL に流れる情報のフローを示しています。

loading-boost

図 1. ゲームが読み込み状態にあることを通知する情報フロー。

Power HAL をカスタマイズしてゲーム読み込み時間を改善する

OEM が GAME_LOADING モードを利用するには、ゲーム読み込みモードのときに Power HAL の実装をカスタマイズする必要があります。CPU クロック速度の向上、温度スロットリングの一時的な軽減、CPU 優先度のフォアグラウンド タスクへの引き上げなどの対策は、パフォーマンスの向上に役立ちます。

パフォーマンス ブーストはハードウェアに固有であるため、Google Pixel デバイスのリファレンス実装がリリースされるまで、ブーストモードのリファレンス実装は提供されません。

ユーザーは、ゲーム ダッシュボードを使用して、パフォーマンス設定で読み込みブースト機能をオンまたはオフにできます。パフォーマンス設定はデフォルトではオフになっています。

ゲーム読み込み実装のテストと検証

実装をテストするには、android.gamemanager.cts.GameManagerTest#testSetGameContext を使用します。このテストでは、isLoading コンテキストを持つ GameManager::setGameContext() が、パフォーマンス モードのときに Power HAL でゲーム読み込みモードを呼び出すかどうかが検証されます。

ただし、この機能の実装はハードウェアに固有であるため、OEM は独自の手動テストを実施して、この機能を使用したときにゲーム読み込み時間が短縮されるかどうかを確認する必要があります。