Memulai Android Dynamic Performance Framework (ADPF) di Unreal Engine

Android Dynamic Performance Framework (ADPF) adalah alat canggih dari Google untuk developer yang ingin mengoptimalkan performa aplikasi mereka. Melalui API termal, ADPF memberikan informasi real-time tentang status termal di luar perangkat, yang kemudian digunakan untuk menyesuaikan setelan grafis di aplikasi.

Untuk tujuan riset, Arm mengembangkan demo menggunakan Unreal Engine dan ADPF untuk menyelidiki cara ADPF digunakan untuk mengoptimalkan performa game.

ADPF memantau status termal, dengan kualitas grafis yang disesuaikan di game engine.

Dengan mempertimbangkan developer, tujuannya adalah memungkinkan pengguna memainkan game lebih lama tanpa memengaruhi pengalaman gameplay dan perangkat yang menghabiskan terlalu banyak daya.

Sebelum memulai

Sebelum melihat demo secara lebih mendetail, penting untuk menyoroti dokumentasi resmi Google tentang ADPF. Dokumentasi ini adalah referensi yang sangat berharga yang memberikan insight mendalam dan panduan tentang cara menggunakan ADPF.

Namun, bagi mereka yang lebih memilih pembelajaran yang dapat disesuaikan, repositori contoh ADPF berisi contoh praktis penerapan ADPF di aplikasi Android.

Penyesuaian setelan grafis

Dalam konteks Unreal Engine, kita dapat menyesuaikan setelan grafis secara dinamis untuk mempertahankan performa.

Kami menggunakan Thermal State Monitor dan Thermal Headroom API di ADPF untuk memantau throttle termal. Kemudian, Anda dapat menyesuaikan setelan kualitas, seperti kualitas bayangan, kualitas refleksi, dan kualitas tekstur, saat perangkat mulai dibatasi.

Setelan Kualitas Grafis berikut di Unreal Engine digunakan untuk mengubah berbagai setelan:

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

Pengujian di dunia nyata

Arm membuat game demo kami sendiri, yang digunakan untuk meneliti teknologi game dan grafik seluler. Tahun ini, kami telah menguji ADPF di salah satunya, demo SteelArms.

SteelArms memiliki tingkat intensitas grafis yang berbeda dan beban kerja CPU yang substansial. Game ini dibuat agar mirip dengan game seluler modern, sehingga kita dapat membuat model perilaku game di ponsel saat ini. Hal ini juga memungkinkan kita menguji cara kerja teknologi yang berbeda dalam game di perangkat seluler berbasis Arm.

Hasil

Gambar 1: Perbandingan layar penuh SteelArms dengan dan tanpa ADPF.

Gambar sebelumnya menunjukkan perbedaan antara kualitas terbaik (Cinematic) dan kualitas terendah (Rendah) saat ADPF diaktifkan untuk menyesuaikan setelan grafis. Perubahan ini bersifat bertahap dan tidak terlihat oleh pengguna selama gameplay.

Gambar 2: Game dengan integrasi ADPF: layar terpisah.

Tampilan layar terpisah dari setelan grafis tertinggi di sisi kiri (Robot Biru), dan setelan grafis terendah di sisi kanan (Robot Merah).

Gambar 3: Game dengan Integrasi ADPF: perbandingan detail berdampingan.
Gambar 4: Game dengan Integrasi ADPF: berdampingan.

Pada gambar 3 dan 4 sebelumnya, tampilan robot yang sama dapat dilihat berdampingan. Jika dilihat lebih dekat, setelan grafis yang disesuaikan dengan menggunakan ADPF akan terlihat. Perhatikan lantai ring, bahu robot, tali ring, dan kerumunan? Semuanya tampaknya memiliki kualitas yang sedikit lebih rendah, yang dilakukan dengan menggunakan ADPF.

Saat throttling akan segera terjadi, efek ini diskalakan ke bawah dalam demo SteelArms. Sulit untuk melihat pengurangan kecil ini dalam pascapemrosesan dan efek visual. Selain itu, pengguna umumnya tidak akan melihatnya saat bermain. Artinya, Anda dapat mempertahankan sebagian besar pengalaman visual untuk game tanpa memengaruhi pengalaman gameplay. Anda dapat melakukan semua ini sambil mempertahankan performa daya game dan masa pakai baterai perangkat.

Seperti yang disebutkan sebelumnya, untuk tujuan demonstrasi, kami membandingkan gambar dengan setelan kualitas tertinggi dan terendah. Itulah sebabnya perbedaan masih dapat dilihat jika dilihat dengan cermat. Namun, saat diperkecil selama gameplay, hal ini hampir tidak terlihat oleh pengguna, sekaligus mempertahankan pengalaman gameplay yang stabil.

Hasil

Gambar 5: Perbandingan FPS, Suhu Perangkat, Status Termal & Headroom saat ADPF diaktifkan/dinonaktifkan ~57% peningkatan kecepatan frame

Perangkat menghindari panas berlebih dan tetap berada dalam headroom termal 1,0.

Pemakaian Daya

Gambar 6: Perbandingan Konsumsi Daya dengan ADPF diaktifkan/dinonaktifkan

Hasil ADPF

Hasil dari ADPF yang dinonaktifkan dan diaktifkan dapat dilihat pada gambar yang ditampilkan sebelumnya. Menunjukkan bahwa ada perbedaan dalam kecepatan frame game, dan konsumsi daya core. Peningkatan kecepatan frame hingga 57% terlihat saat ADPF aktif. Jika ADPF nonaktif, GPU akan menggunakan daya dalam jumlah yang signifikan. Core CPU besar kemudian memiliki lonjakan daya yang konsisten dengan beban kerja GPU. Karena core CPU besar sedang mengejar jumlah pemrosesan yang diperlukan. Sebagai perbandingan, saat ADPF aktif, core CPU besar akan merespons throttle dan menurunkan konsumsi daya secara keseluruhan dari semua core di perangkat.

Kesimpulan

ADPF dapat meningkatkan konsumsi daya game secara signifikan. Hal ini pada akhirnya berarti waktu bermain yang lebih lama bagi gamer, dengan masa pakai baterai yang lebih baik dan suhu yang lebih rendah untuk perangkat yang digunakan. Dari perspektif developer, ADPF mempertahankan kecepatan frame game yang benar. Sekaligus memberi mereka fleksibilitas untuk menskalakan setelan kualitas dan tetap memberikan pengalaman game yang luar biasa kepada pengguna.

Perangkat yang lebih baru dan lebih lama dapat memanfaatkan ADPF. Hal ini memungkinkan game berjalan dengan standar tinggi pada perangkat generasi sebelumnya tanpa pekerjaan pengoptimalan tambahan.