開始在 Unreal Engine 中使用 Android 動態效能架構 (ADPF)

Android 動態效能架構 (ADPF) 是 Google 推出的一項強大工具,可協助開發人員改善應用程式效能。透過熱力 API,ADPF 會提供裝置熱力狀態的即時資訊,以便調整應用程式中的圖形設定。

為了進行研究,Arm 使用 Unreal Engine 和 ADPF 開發了一個示範,以便調查如何使用 ADPF 來提升遊戲效能。

ADPF 會監控熱力狀態,並在遊戲引擎中相應調整圖形品質。

開發人員應將目標放在讓使用者能夠在無損遊戲體驗的情況下,延長遊戲時間,並避免裝置耗用過多電力。

事前準備

在進一步查看示範前,請務必先參閱 ADPF 的官方 Google 說明文件。這份文件是極具參考價值的資源,提供 ADPF 的深入洞察和使用指南。

不過,如果您偏好自訂學習方式,ADPF 範例存放區內有實務範例,可在 Android 應用程式中實作 ADPF。

調整圖形設定

在 Unreal Engine 的情況下,我們可以動態調整圖形設定,以維持效能。

我們使用 ADPF 中的熱力狀態監控器和 Thermal Headroom API 監控熱力節流。接著,您可以調整品質設定,例如陰影品質、反射品質和紋理品質,以便在裝置開始節流時調整。

下列 Unreal Engine 中的「Graphics Quality」設定可用於修改各種設定:

  • ViewDistanceQuality
  • ShadowQuality
  • GlobalIlluminationQuality
  • ReflectionQuality
  • AntiAliasingQuality
  • TextureQuality
  • VisualEffectQuality
  • PostProcessingQuality
  • FoliageQuality
  • ShadingQuality
  • OverallScalabilityLevel

通過真實環境測試

Arm 會自行製作示範遊戲,用於研究行動圖像和遊戲技術。今年,我們在其中一個應用程式 (SteelArms 示範) 上測試了 ADPF。

SteelArms 有不同程度的圖形強度和大量 CPU 工作負載。這款遊戲的設計類似於現代行動遊戲,因此我們可以模擬當今行動裝置上的遊戲行為。這也讓我們能夠測試不同技術在以 Arm 為基礎的行動裝置上執行遊戲時的運作情形。

結果

圖 1:有無 ADPF 的 SteelArms 全螢幕比較。

上圖顯示,當 ADPF 啟用以調整圖像設定時,最佳 (Cinematic) 品質與最低 (Low) 品質的差異。這項變化是漸進式的,使用者在遊戲過程中不會察覺。

圖 2:已整合 ADPF 的遊戲:分割畫面。

分割畫面檢視畫面,左側為最高等級的圖形設定 (藍色機器人),右側為最低等級的圖形設定 (紅色機器人)。

圖 3:已整合 ADPF 的遊戲:詳細資料並排比較。
圖 4:已整合 ADPF 的遊戲:並排顯示。

在前述的圖 3 和 4 中,可以並排看到相同的機器人檢視畫面。仔細觀察後,您會發現使用 ADPF 調整的圖像設定。請注意擂台地板、機器人的肩膀、擂台繩索和觀眾。所有圖片似乎都使用 ADPF 處理,因此品質略為下降。

在即將受到節流限制時,這些效果會在 SteelArms 示範中縮小。在後製和視覺效果中,很難發現這些微小的減少。此外,使用者在遊戲過程中通常不會注意到這些廣告。也就是說,您可以維持遊戲的大部分視覺體驗,且不會影響遊戲體驗。您可以同時執行這些操作,同時維持遊戲的電力效能和裝置的電池續航力。

如先前所述,為了示範效果,我們會比較最高和最低品質設定的圖片。因此,仔細觀察時仍可看出差異。不過,在遊戲過程中縮小畫面時,使用者幾乎不會察覺,同時也能維持穩定的遊戲體驗。

結果

圖 5:啟用/停用 ADPF 時的 FPS、裝置溫度、熱力狀態和裕度比較,幀率提升約 57%

裝置可避免過熱,並維持在 1.0 度的熱力裕度內。

耗電量

圖 6:啟用/停用 ADPF 時的耗電量比較

ADPF 結果

您可以在先前顯示的圖表中,查看 ADPF 開啟和關閉的結果。顯示遊戲的幀率和核心的耗電量有差異。開啟 ADPF 後,影格速率最高可提升 57%。關閉 ADPF 後,GPU 會消耗大量電力。接著,CPU (大) 核心的耗電量會出現與 GPU 工作負載一致的尖峰。因為它正在追上所需處理的處理量。相較之下,當 ADPF 開啟時,CPU (大) 核心會回應節流,並降低裝置中所有核心的整體耗電量。

結語

ADPF 可大幅改善遊戲的耗電量。這最終意味著玩家可延長遊戲時間,同時提升電池續航力,並降低裝置的溫度。從開發人員的角度來看,ADPF 可維持遊戲的正確影格速率。同時讓他們彈性調整品質設定,同時為使用者提供絕佳的遊戲體驗。

新舊裝置都能從使用 ADPF 中受益。這項功能可讓遊戲在舊款裝置上以高標準運作,無需額外進行最佳化作業。