NEW STATE Mobile riduce l'utilizzo della GPU del 22% con Android GPU Inspector
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Premessa
NEW STATE Mobile è un gioco battle royale di Krafton lanciato a novembre 2021 in tutto il mondo e che ha raggiunto oltre 45 milioni di download nel primo mese dal lancio. KRAFTON, Inc. è un collettivo di studi indipendenti di sviluppo di giochi, riuniti per creare esperienze di intrattenimento innovative e coinvolgenti per i giocatori di tutto il mondo. La società è composta da PUBG Studios, Bluehole Studio, Understanding Distance Studios, RisingWings, Dreamotion e Unknown Worlds, ognuno con la propria esperienza unica. NEW STATE Mobile è stata creata con Unreal Engine 4 e sono stati fatti diversi tentativi per ridurre il consumo di calore e batteria causato dall'elevato utilizzo della GPU dalle sue caratteristiche di gioco.
I giocatori possono partecipare a battaglie a lungo raggio, quindi il motore di gioco deve essere in grado di visualizzare le scene da una certa distanza. Inoltre, sul campo di battaglia sono presenti numerose vegetazioni e, di conseguenza, il loro disastro ha un impatto sostanziale sul calo delle prestazioni. Ciò ha portato il team ad Android GPU Inspector (AGI) per ottimizzare l'utilizzo della GPU del gioco ed eliminare i colli di bottiglia.

Figura 1: screenshot del dispositivo mobile NEW STATE
Cosa hanno fatto
NEW STATE Mobile ha utilizzato AGI per accedere a moltissime informazioni sui contatori delle GPU e ottimizzare l'utilizzo della GPU di conseguenza. Ha identificato passaggi di rendering non necessari con l'aiuto dei dati di profilazione delle attività GPU forniti da AGI. Dopo aver identificato i segmenti che occupavano l'utilizzo della GPU e la larghezza di banda della memoria, hanno continuato a controllare l'avanzamento dell'ottimizzazione utilizzando il contatore GPU e l'attività della GPU per verificare se andavano nella direzione giusta.

Figura 2: screenshot di NEW STATE per dispositivi mobili
Ecco alcune cose che hanno appreso sulle prestazioni del gioco usando l'AGI:
Ottimizzazione Base Pass: il prepassaggio della profondità, una tecnologia che aumenta l'utilizzo di Early-z, ha contribuito a ridurre l'uso dell'ombreggiatura dei frammenti. Il prepassaggio profondità è stato utilizzato specificatamente per il livello 0, che occupa la maggior parte dello spazio sullo schermo, riducendo al minimo il carico che può derivare da chiamate di estrazione aggiuntive. Inoltre, l'uso del formato scenecolor a 32 bit può aumentare le prestazioni dell'intero passaggio di rendering. Il formato predefinito di SceneColor di UnrealEngine4 è FloatRGBA, a 64 bit. Utilizzando il formato a 32 bit, la larghezza di banda della memoria può essere dimezzata.
Impatto misurato: dopo l'applicazione del prepassaggio della profondità, l'utilizzo della GPU è diminuito del 7,5%. A causa del prepassaggio della profondità, più frammenti potrebbero essere Early-Z. Il tempo necessario per l'ombreggiatura dei frammenti è diminuito del 2%. Tramite il formato scenecolor a 32 bit, l'utilizzo della GPU è stato ridotto del 5,3%. Il numero di Shaders occupati è diminuito del 2% e la lettura totale della GPU dalla memoria di sistema è diminuita di 330 MB/s. La quantità di scrittura della GPU nella memoria di sistema è stata ridotta di 78 MB/s e anche la lettura della memoria Texture è stata ridotta di 43 MB/s.
Ottimizzazione del passaggio delle ombre: quando le mesh vengono utilizzate come ruote delle ombre, l'uso di un LOD a poligoni elevati non fa davvero differenza in termini di qualità. È preferibile utilizzare il livello di dettaglio del poligono basso per ridurre il numero di triangoli. In Unreal Engine 4, il livello di dettaglio basso dei poligoni può essere utilizzato tramite il comando della console "ForceLODShadow".
Impatto misurato: il numero di triangoli utilizzati per le ombre è diminuito di circa 120.000. I dati del contatore GPU in AGI hanno mostrato che l'utilizzo della GPU è diminuito di circa il 2%, la quantità della memoria della GPU letta dalla memoria di sistema è diminuita di 130 MB/s e la quantità scritta dalla GPU alla memoria di sistema è diminuita di circa 23 MB.
Istanza automatica: l'istanza automatica, che può essere applicata sia per l'ottimizzazione del passaggio shadow che per l'ottimizzazione del passaggio di base, consente di unire gli stessi comandi di rendering in fase di esecuzione e poi di eseguirne il rendering contemporaneamente. In questo modo, NEWSTATE ha potuto applicare l'illuminazione globale ai singoli oggetti senza compromettere il rendimento. L'istanza automatica è una funzionalità di base fornita da UnrealEngine4.
Impatto misurato: le chiamate di disegno sono state ridotte di 500. Ha ridotto di circa il 48% le chiamate di estrazione. L'utilizzo della GPU è diminuito di circa il 3,5%. Queste misurazioni sono state effettuate utilizzando OpenGL.

Figura 3: dati interni che mostrano la riduzione dell'utilizzo della GPU
Risultati
Grazie all'utilizzo di AGI, NEW STATE Mobile ha ridotto l'utilizzo della GPU del 22%. A causa dell'ottimizzazione del prepassaggio della profondità e del passaggio shadow, l'utilizzo della GPU è diminuito rispettivamente del 19% e del 3%. Richiama le chiamate e la memoria totale letta e scritta dalla GPU dalla memoria di sistema è stata notevolmente ridotta.
Inizia
Scopri come analizzare l'impatto del tuo gioco sui dispositivi Android identificando i problemi di prestazioni e le aree da ottimizzare con il GPU Inspector (AGI) di Android.
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2022-02-25 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2022-02-25 UTC."],[],[],null,["# NEW STATE Mobile reduces GPU usage by 22% with Android GPU Inspector\n\nBackground\n----------\n\n[NEW STATE Mobile](https://play.google.com/store/apps/details?id=com.pubg.newstate) is a battle royale game from Krafton that launched Nov 2021 worldwide, and reached 45M+ downloads in the first month of launch. KRAFTON, Inc. is a collective of independent game development studios brought together to create innovative and engaging entertainment experiences for gamers across the world. The company consists of PUBG Studios, Bluehole Studio, Striking Distance Studios, RisingWings, Dreamotion, and Unknown Worlds, each with its own unique expertise. NEW STATE Mobile was created with Unreal Engine 4, and various attempts have been made to reduce heat and battery consumption caused by high GPU usage from their distinctive gaming features.\n\nGamers can play long range battles, so the game engine needs to be able to render scenes from quite a distance. Also, numerous vegetations are present in the battleground, leading the overdraw of these vegetations to have a substantial impact on decreasing performance. This led the team to [Android GPU Inspector](http://developer.android.com/agi) (AGI) to help optimize the game's GPU usage and eliminate bottlenecks.\n\n**Figure 1**: Screenshot from NEW STATE Mobile\n\nWhat they did\n-------------\n\nNEW STATE Mobile used AGI to access loads of GPU counter information and optimize their GPU usage accordingly. They identified unnecessary render passes with the help of the GPU activity profiling data provided by AGI. After identifying which segments were taking up GPU usage and memory bandwidth, they continued to check the optimization progress using the GPU Counter and GPU activity back and forth to check if they were headed in the right direction.\n\n**Figure 2**: Screenshot from NEW STATE Mobile\n\nHere are a few things they learned about the game's performance using AGI:\n\n- **Base pass optimization**: Depth prepass, which is a technology that increases usage of Early-z, helped decrease the use of fragment shading. Depth prepass was specifically used for LOD0 which takes up most of the screen space, minimizing the burden that can come from additional draw calls. Also, using the 32-bit scenecolor format can increase the performance of the entire render pass. Default SceneColor format of UnrealEngine4 is FloatRGBA, which is 64-bit. If a 32-bit format is used, memory bandwidth can be reduced by half.\n\n- **Impact measured**: After applying depth prepass, GPU utilization dropped by 7.5%. Due to the depth prepass, more Fragments could be Early-Z. The rate of time required for fragment shading has decreased by 2%. Through the 32-bit scenecolor format, GPU utilization was reduced by 5.3%. Shaders Busy decreased by 2%, and total GPU read from system memory decreased 330 MB/s. The amount the GPU writes to system memory was reduced by 78 MB/s and Texture memory read was also reduced by 43 MB/s.\n\n- **Shadow pass optimization**: When meshes are used as shadow casters, using high polygon LOD does not really make a difference in quality. It is preferred to use low polygon LOD which helps reduce the number of triangles. In Unreal Engine 4, low polygon LOD can be used via the console command 'ForceLODShadow'.\n\n- **Impact measured**: The number of triangles used for shadows decreased by about 120,000. The GPU counter data in AGI showed that GPU usage decreased about 2%, the amount of the GPU memory read from the system memory decreased 130MB/s, and the amount written from the GPU to the system memory decreased about 23MBs.\n\n- **Auto-instancing**: Auto-instancing, which can be applied for both shadow pass and base pass optimization, allows you to merge the same render commands at runtime and then be rendered all at once. This allowed NEWSTATE mobile to apply global illumination to individual objects without losing performance. Auto-instancing is a basic feature provided by UnrealEngine4.\n\n- **Impact measured**: Draw calls were reduced by 500. It reduced about 48% of the draw calls. GPU utilization decreased about 3.5%. These measurements were taken using OpenGL.\n\n**Figure 3**: Internal data showing GPU usage reduction\n\nResults\n-------\n\nBy using AGI, NEW STATE Mobile reduced its GPU usage by 22%. From depth prepass and shadow pass optimization, GPU usage was down by 19% and 3% respectively. Draw calls and the total memory read and written by GPU from system memory was also substantially reduced.\n\nGet started\n-----------\n\nLearn how to analyze the impact of your game on Android devices by identifying performance issues and areas to optimize with the [Android GPU Inspector](https://developer.android.com/agi) (AGI)."]]