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 studiare 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 sul lato sinistro (robot blu) e delle impostazioni grafiche più basse sul lato destro (robot rosso).
Nelle figure 3 e 4 precedenti, la stessa vista del robot è visibile affiancata. Se si osserva più da vicino, si vedono le impostazioni grafiche regolate utilizzando ADPF. Hai notato il pavimento del ring, la spalla del robot, le corde del ring e la folla? Sembra che tutte abbiano 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 gameplay. 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 con le impostazioni di qualità più basse. Ecco perché la differenza può essere ancora distinta se osservata attentamente. Tuttavia, quando viene ridotta la risoluzione durante il gameplay, l'utente non nota quasi nulla, pur mantenendo 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 della disattivazione e dell'attivazione dell'ADPF sono visibili nelle figure mostrate precedentemente. Mostra che esiste una differenza nella frequenza dei fotogrammi del gioco e nel consumo di energia dei core. Quando ADPF è attivo, si registra un miglioramento fino al 57% della frequenza frame. Quando ADPF è disattivata, la GPU consuma una quantità significativa di energia. Il core della CPU grande presenta picchi di potenza in linea 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 offrire 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.