Mengoptimalkan kecepatan refresh

Android 15 menetapkan kecepatan refresh 60 Hz default untuk game guna mengoptimalkan konsumsi daya. Untuk membuka kecepatan frame yang lebih tinggi seperti 120 FPS, Anda kini harus memintanya secara eksplisit menggunakan Frame Rate API atau library Swappy.

Namun, sistem dapat mengganti permintaan ini berdasarkan faktor seperti level baterai atau suhu perangkat. Meskipun kecepatan refresh yang lebih tinggi meningkatkan kelancaran visual, kecepatan ini juga memerlukan lebih banyak daya dan menghasilkan panas tambahan. Oleh karena itu, penting untuk menawarkan opsi kepada pengguna untuk memilih kecepatan refresh yang mereka inginkan dan memantau performa dengan cermat untuk memastikan pengalaman pengguna yang seimbang.

Menggunakan setFrameRate() API

setFrameRate() API memungkinkan developer game menggunakan kecepatan refresh layar tertentu. Ada dua langkah untuk melakukannya:

  1. Memverifikasi kompatibilitas perangkat dan versi Android.
  2. Minta FPS tinggi menggunakan setFrameRate().

Memverifikasi Kompatibilitas Perangkat dan Versi Android:

Gunakan metode Display.getSupportedModes() untuk menentukan apakah perangkat mendukung kecepatan refresh 90 Hz, 120 Hz, atau lainnya. Jika perangkat dibatasi hingga 60 Hz, batas ini tidak dapat dilampaui.

Kotlin

val display = windowManager.defaultDisplay
val supportedModes = display.supportedModes
for (mode in supportedModes) {
  Log.d("DisplayInfo", "Supported mode: ${mode.physicalWidth}x${mode.physicalHeight}, ${mode.refreshRate}Hz")
}

Meminta FPS Tinggi

Panggil setFrameRate() saat loop rendering dimulai, selama inisialisasi jendela game, atau saat FPS target perlu mengubah kecepatan refresh layar.

Meskipun Anda meminta kecepatan yang lebih tinggi, sistem mungkin masih membatasi kecepatan refresh ke 60 Hz karena faktor seperti mode hemat daya atau throttling termal. Jika performa rendering game Anda tidak mencapai FPS target, meminta kecepatan refresh yang lebih tinggi dapat menghabiskan konsumsi daya yang tidak perlu dan meningkatkan suhu perangkat.

Cuplikan berikut menunjukkan cara menghindari kecepatan refresh yang terlalu tinggi dengan setFrameRate() API.

Kotlin

val targetFps = 120f
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
  window.setFrameRate(
      targetFps,
      Window.FrameRateCompatibility.FRAME_RATE_COMPATIBILITY_FIXED_SOURCE,
      0
  )
}

Halaman Framerate memberikan informasi yang lebih mendetail untuk bacaan lebih lanjut.

Menggunakan library Frame pacing

Library kecepatan frame, atau Swappy, adalah library open source yang dirancang untuk menyederhanakan pengelolaan VSync dan penjadwalan frame di game engine Android C/C++. Alat ini menyederhanakan proses pengoptimalan kecepatan refresh, yang secara efektif bertindak sebagai lapisan abstraksi tingkat tinggi atas fungsi seperti setFrameRate(). Selain itu, Swappy menyediakan fitur tambahan yang dapat meningkatkan kelancaran dan performa game secara keseluruhan.

Halaman Swappy memberikan informasi yang lebih mendetail.

Tips Tambahan untuk Hasil Terbaik

Bagian berikut menjelaskan beberapa tips terbaik:

  1. Peralihan Kecepatan Frame Dinamis.
  2. Performance Monitoring.
  3. Berikan opsi FPS berdasarkan kecepatan refresh tampilan maksimum.

Peralihan Kecepatan Frame Dinamis

Untuk mengoptimalkan performa dan konsumsi daya, pertimbangkan untuk menerapkan pengalihan kecepatan frame dinamis dalam game Anda. Teknik ini memungkinkan Anda bertransisi dengan lancar antara kecepatan refresh yang lebih tinggi seperti 120 Hz untuk gameplay yang lebih lancar selama scene yang menuntut, dan kecepatan yang lebih rendah seperti 60 Hz selama momen yang tidak terlalu intensif atau saat masa pakai baterai menjadi masalah atau menargetkan di bawah 60 FPS. Berjalan terus-menerus pada 120 Hz dapat menyebabkan peningkatan panas yang berlebihan dan baterai cepat habis, yang berpotensi menghasilkan pengalaman pengguna yang negatif. Dengan menyesuaikan kecepatan refresh secara cerdas berdasarkan beban rendering saat ini dan kondisi perangkat, Anda dapat menyeimbangkan fidelitas visual dan efisiensi daya.

Pemantauan Performa

Untuk memastikan game Anda berperforma optimal pada kecepatan refresh yang lebih tinggi, integrasikan alat pemantauan performa seperti penghitung frame atau overlay performa. Alat ini memberikan masukan real-time tentang kecepatan frame sebenarnya game Anda, sehingga Anda dapat memverifikasi apakah Anda secara konsisten mencapai target 120 FPS.

Jika kecepatan frame berfluktuasi secara signifikan, pertimbangkan untuk menargetkan kecepatan frame yang lebih rendah yang dapat dicapai di perangkat tertentu. Hal ini dapat memberikan pengalaman yang lebih lancar tanpa gangguan performa yang mungkin terjadi saat berupaya mendapatkan frekuensi refresh tertinggi.

Memberikan opsi FPS berdasarkan kecepatan refresh layar maksimum

Game Anda harus mendeteksi kecepatan refresh layar maksimum yang didukung oleh perangkat saat ini, seperti 60 Hz, 90 Hz, atau 120 Hz, dan membatasi setelan FPS sesuai kebutuhan. Misalnya, jika perangkat hanya mendukung hingga 60 Hz, sebaiknya nonaktifkan opsi apa pun yang lebih tinggi dari 60 FPS di setelan game agar tidak membingungkan pemain.