Android Dynamic Performance Framework (ADPF) è un potente strumento di Google per gli sviluppatori che vogliono ottimizzare il rendimento delle proprie applicazioni. tramite le sue API termiche, ADPF fornisce informazioni in tempo reale sullo stato termico del dispositivo, che vengono poi utilizzate per regolare le impostazioni grafiche nell'applicazione.
A scopo di ricerca, Arm ha sviluppato una demo utilizzando Unreal Engine e ADPF per esaminare come ADPF viene utilizzato per ottimizzare le prestazioni dei giochi.
ADPF monitora lo stato termico, con le qualità grafiche che vengono regolate di conseguenza nel motore di gioco.
Tenendo conto degli sviluppatori, l'obiettivo è consentire agli utenti di giocare per più tempo senza influire sull'esperienza di gioco e sul consumo eccessivo di energia del dispositivo.
Prima di iniziare
Prima di esaminare la demo in modo più dettagliato, è importante evidenziare la documentazione ufficiale di Google sull'ADPF. Questa documentazione è una risorsa inestimabile che fornisce approfondimenti e indicazioni approfondite su come utilizzare ADPF.
Tuttavia, per chi preferisce un apprendimento personalizzabile, il repository di esempi ADPF contiene esempi pratici di implementazione di ADPF nelle applicazioni per Android.
Regolazione delle impostazioni di grafica
Nel contesto di Unreal Engine, possiamo regolare le impostazioni della grafica in modo dinamico per mantenere le prestazioni.
Abbiamo utilizzato il monitoraggio dello stato termico e l'API Thermal Headroom in ADPF per monitorare la limitazione termica. Quando il dispositivo inizia a essere limitato, puoi regolare le impostazioni della qualità, ad esempio la qualità delle ombre, delle riflessioni e delle texture.
Le seguenti impostazioni della qualità grafica in Unreal Engine vengono utilizzate per modificare varie impostazioni:
- ViewDistanceQuality
- ShadowQuality
- GlobalIlluminationQuality
- ReflectionQuality
- AntiAliasingQuality
- TextureQuality
- VisualEffectQuality
- PostProcessingQuality
- FoliageQuality
- ShadingQuality
- OverallScalabilityLevel
Test nel mondo reale


Arm crea i propri giochi demo, che vengono utilizzati per la ricerca sulle tecnologie di grafica e giochi mobile. Quest'anno abbiamo testato ADPF su una di queste, la demo di SteelArms.
SteelArms ha diversi livelli di intensità grafica e un considerevole carico di lavoro della CPU. È progettato per essere simile ai giochi mobile moderni, in modo da poter modellare il comportamento del gioco sui cellulari di oggi. Ci consente inoltre di testare il funzionamento di diverse tecnologie in un gioco su dispositivi mobili basati su Arm.
Risultati


Le immagini precedenti mostrano la differenza tra la qualità migliore (Cinematografica) e la qualità più bassa (Bassa) quando l'ADPF è attivato per regolare le impostazioni grafiche. Questa variazione è graduale e non viene notata dagli utenti durante il gameplay.

Una visualizzazione a schermo diviso delle impostazioni grafiche più elevate a sinistra (robot blu) e delle impostazioni grafiche più basse a destra (robot rosso).


Nelle figure 3 e 4 precedenti, la stessa vista del robot è visibile affiancata. Se si osserva più da vicino, si notano le impostazioni grafiche regolate utilizzando ADPF. Hai notato il pavimento del ring, la spalla del robot, le corde del ring e la folla? Sembrano avere tutte una qualità leggermente inferiore, ottenuta utilizzando ADPF.
Quando il throttling era imminente, questi effetti venivano ridotti nella demo di SteelArms. È difficile individuare queste piccole riduzioni nell'elaborazione post-produzione e negli effetti visivi. Inoltre, in genere gli utenti non li notano durante la riproduzione. Ciò significa che puoi mantenere la maggior parte dell'esperienza visiva del gioco senza influire sull'esperienza di gioco. Puoi fare tutto questo mantenendo inalterate le prestazioni del tuo gioco e la durata della batteria del tuo dispositivo.
Come accennato in precedenza, a scopo dimostrativo, stiamo confrontando le immagini con le impostazioni di qualità più elevate con quelle di qualità più bassa. Ecco perché la differenza può essere ancora distinta se osservata attentamente. Tuttavia, quando viene ridotta la risoluzione durante il gameplay, la differenza è minima per l'utente, che può comunque godere di un'esperienza di gioco stabile.
Risultati




Il dispositivo evita il surriscaldamento e rimane entro un margine termico di 1,0.
Consumo di corrente

Risultati ADPF
I risultati dell'ADPF attiva e disattivata sono visibili nelle figure mostrate in precedenza. Mostra che esiste una differenza nella frequenza dei fotogrammi del gioco e nel consumo di energia dei core. Quando ADPF è attiva, si registra un miglioramento fino al 57% della frequenza frame. Quando l'ADPF è disattivata, la GPU consuma una notevole quantità di energia. Il core della CPU grande presenta picchi di potenza coerenti con il carico di lavoro della GPU. Man mano che raggiunge la quantità di elaborazione richiesta. In confronto, quando ADPF è attivo, il core della CPU grande risponde al throttling e riduce il consumo energetico complessivo di tutti i core del dispositivo.
Conclusione
L'ADPF può migliorare notevolmente il consumo energetico dei giochi. Ciò significa in definitiva un tempo di gioco più lungo per i giocatori, con una maggiore durata della batteria e una temperatura più bassa del dispositivo in uso. Dal punto di vista dello sviluppatore, ADPF mantiene la frequenza frame corretta del gioco. Allo stesso tempo, offrono la flessibilità di ridurre le impostazioni di qualità e fornire comunque all'utente un'esperienza di gioco ottimale.
I dispositivi più recenti e meno recenti possono trarre vantaggio dall'utilizzo di ADPF. Consente di eseguire i giochi secondo un livello elevato su generazioni precedenti di dispositivi senza ulteriori operazioni di ottimizzazione.