NEW STATE Mobile, Android GPU Inspector ile GPU kullanımını% 22 azalttı
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Arka plan
NEW STATE Mobile, Krafton tarafından Kasım 2021'de tüm dünyada kullanıma sunulan ve kullanıma sunulduğu ilk ayda 45 milyondan fazla indirilen bir battle royale oyunudur. KRAFTON, Inc. dünyanın dört bir yanındaki oyuncular için yenilikçi ve ilgi çekici eğlence deneyimleri oluşturmak amacıyla bir araya gelen bağımsız oyun geliştirme stüdyolarından oluşan bir kolektiftir. Şirket; her biri kendi benzersiz uzmanlığına sahip PUBG Studios, Bluehole Studio, Striking DISTANCE Studios, RisingWings, Dreamotion ve Unknown Worlds'ten oluşuyor. YENİ DURUM Mobil, Unreal Engine 4 ile geliştirildi. Bu oyunların kendine özgü oyun özelliklerinden yüksek GPU kullanımından kaynaklanan ısı ve pil tüketimini azaltmak için çeşitli girişimler yapıldı.
Oyuncular uzun menzilli savaşlar oynayabilir. Bu nedenle, oyun motorunun sahneleri oldukça uzaktan oluşturabilmesi gerekir. Ayrıca, savaş alanında çok sayıda bitki örtüsü bulunduğu için, bu bitkilerin fazla çekmesine yol açan ve performansın düşmesinde önemli bir etkisi vardır. Bu, oyunun GPU kullanımını optimize etmesine ve performans sorunlarını ortadan kaldırmaya yardımcı olması için ekibi Android GPU Inspector'a (AGI) yönlendirdi.

Şekil 1: NEW STATE Mobile ekran görüntüsü
Ne yaptılar?
NEW STATE Mobile, çok sayıda GPU sayaç bilgisine erişmek ve GPU kullanımını buna göre optimize etmek için AGI'yi kullandı. AGI tarafından sağlanan GPU etkinlik profili oluşturma verilerinin yardımıyla gereksiz oluşturma geçişlerini tespit ettiler. Hangi segmentlerin GPU kullanımını ve bellek bant genişliğini kullandığını belirledikten sonra, doğru yönde ilerleyip ilerlemediklerini kontrol etmek için GPU Sayacı ve GPU etkinliğini sürekli olarak kontrol etmeye devam ettiler.

Şekil 2: NEW STATE Mobile ekran görüntüsü
Oyunun performansı hakkında AGI kullanarak öğrendikleri birkaç şey şöyle:
Temel geçiş optimizasyonu: Early-z'in kullanımını artıran bir teknoloji olan derinlik ön geçişi, parça gölgelendirme kullanımının azaltılmasına yardımcı oldu. Derinlik ön geçişi, özellikle ekran alanının büyük kısmını kaplayan LOD0 için kullanıldı ve ek çekim çağrılarının getirdiği yükü en aza indirdi. Ayrıca, 32 bit sahne rengi biçiminin kullanılması, oluşturma geçişinin tamamının performansını artırabilir. UnrealEngine4'ün varsayılan SceneColor biçimi 64 bit olan FloatRGBA'dır. 32 bit bir biçim kullanılırsa bellek bant genişliği yarı yarıya azaltılabilir.
Etki ölçüldü: Derinlik ön geçişi uygulandıktan sonra GPU kullanımı %7, 5 azaldı. Derinlik ön geçişi nedeniyle daha fazla Parça Erken Z olabilir. Parça gölgelendirme için gereken süre %2 oranında azaldı. 32 bit sahne rengi biçimi sayesinde GPU kullanımı %5, 3 azaldı. Gölgelendiriciler Meşgul %2 oranında azaldı ve sistem belleğinden toplam GPU okuma işlemi 330 MB/sn. azaldı. GPU'nun sistem belleğine yazma miktarı 78 MB/sn ve doku belleği okuması da 43 MB/sn azaldı.
Gölge geçirme optimizasyonu: Örgüler gölge tekerlekleri olarak kullanıldığında yüksek poligon LOD kullanmak kalitede gerçekten bir fark yaratmaz. Üçgen sayısını azaltmaya yardımcı olması için düşük çokgen LOD kullanmak tercih edilir. Unreal Engine 4'te, düşük poligon LOD, "ForceLODShadow" konsol komutu aracılığıyla kullanılabilir.
Ölçülen etki: Gölgeler için kullanılan üçgenlerin sayısı yaklaşık 120.000 oranında azaldı. AGI'deki GPU sayaç verileri, GPU kullanımının yaklaşık %2 oranında azaldığını, sistem belleğinden okunan GPU belleği miktarının 130 MB/sn azaldığını ve GPU'dan sistem belleğine yazılan miktarın yaklaşık 23 MB azaldığını gösterdi.
Otomatik uygulama: Hem gölge geçirme hem de taban geçişi optimizasyonu için uygulanabilen otomatik uygulama, çalışma zamanında aynı oluşturma komutlarını birleştirmenize ve daha sonra bunları tek seferde oluşturmanıza olanak tanır. Bu, NEWSTATE mobil cihazının, performanstan ödün vermeden tek tek nesnelere global aydınlatma uygulamasını sağladı. Otomatik uygulama, UnrealEngine4 tarafından sağlanan temel bir özelliktir.
Etki ölçüldü: Çekiliş çağrıları 500 azaldı. Çekim çağrılarının yaklaşık% 48'ini azalttı. GPU kullanımı yaklaşık %3,5 azaldı. Bu ölçümler OpenGL kullanılarak alınmıştır.

Şekil 3: GPU kullanımındaki azalmayı gösteren dahili veriler
Sonuçlar
NEW STATE Mobile, AGI kullanarak GPU kullanımını %22 oranında azalttı. Derinlik ön geçiş ve gölge geçirme optimizasyonundan sonra GPU kullanımı sırasıyla% 19 ve% 3 azaldı. Çizim çağrıları ve sistem belleğinden GPU tarafından okunup yazılan toplam bellek de önemli ölçüde azaldı.
Başlayın
Android GPU Inspector (AGI) ile performans sorunlarını ve optimize edilecek alanları belirleyerek oyununuzun Android cihazlar üzerindeki etkisini nasıl analiz edeceğinizi öğrenin.
Bu sayfadaki içerik ve kod örnekleri, İçerik Lisansı sayfasında açıklanan lisanslara tabidir. Java ve OpenJDK, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2022-02-25 UTC.
[[["Anlaması kolay","easyToUnderstand","thumb-up"],["Sorunumu çözdü","solvedMyProblem","thumb-up"],["Diğer","otherUp","thumb-up"]],[["İhtiyacım olan bilgiler yok","missingTheInformationINeed","thumb-down"],["Çok karmaşık / çok fazla adım var","tooComplicatedTooManySteps","thumb-down"],["Güncel değil","outOfDate","thumb-down"],["Çeviri sorunu","translationIssue","thumb-down"],["Örnek veya kod sorunu","samplesCodeIssue","thumb-down"],["Diğer","otherDown","thumb-down"]],["Son güncelleme tarihi: 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)."]]