Mengoptimalkan kecepatan refresh

Android 15 menetapkan kecepatan refresh 60 Hz default untuk game guna mengoptimalkan konsumsi daya. Untuk mengaktifkan 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 refresh yang lebih tinggi juga memerlukan lebih banyak daya dan menghasilkan panas tambahan. Oleh karena itu, penting untuk menawarkan opsi kepada pengguna untuk memilih kecepatan refresh yang diinginkan dan memantau performa dengan cermat untuk memastikan pengalaman pengguna yang seimbang.

Menggunakan setFrameRate() API

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

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

Memverifikasi Kompatibilitas Perangkat dan Versi Android:

Gunakan metode Display.getSupportedModes() untuk menentukan apakah perangkat mendukung 90 Hz, 120 Hz, atau kecepatan refresh 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 hingga 60 Hz karena faktor seperti mode hemat daya atau pembatasan 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 Kecepatan frame memberikan informasi yang lebih mendetail untuk dibaca lebih lanjut.

Menggunakan library Frame pacing

Library frame pacing, atau Swappy, adalah library open source yang dirancang untuk menyederhanakan pengelolaan VSync dan penjadwalan frame di mesin game Android C/C++. Alat ini menyederhanakan proses pengoptimalan kecepatan refresh, yang secara efektif bertindak sebagai lapisan abstraksi tingkat yang lebih 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 Mendapatkan Hasil Terbaik

Bagian berikut menguraikan beberapa tips terbaik:

  1. Pengalihan Kecepatan Frame Dinamis.
  2. Pemantauan Performa.
  3. Menyediakan opsi FPS berdasarkan kecepatan refresh layar maksimum.

Pengalihan 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 adegan yang menuntut, dan kecepatan yang lebih rendah seperti 60 Hz selama momen yang kurang intensif atau saat masa pakai baterai menjadi perhatian atau menargetkan di bawah 60 FPS. Terus menjalankan pada 120 Hz dapat menyebabkan produksi panas yang berlebihan dan pengurasan baterai yang cepat, yang berpotensi menghasilkan pengalaman pengguna yang negatif. Dengan menyesuaikan kecepatan refresh secara cerdas berdasarkan beban rendering dan kondisi perangkat saat ini, Anda dapat menyeimbangkan antara kualitas visual dan efisiensi daya.

Pemantauan Performa

Untuk memastikan game Anda berjalan secara 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 game Anda yang sebenarnya, sehingga Anda dapat memverifikasi apakah Anda secara konsisten mencapai target 120 FPS.

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

Menyediakan 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. Misalnya, jika perangkat hanya mendukung hingga 60 Hz, sebaiknya nonaktifkan opsi yang lebih tinggi dari 60 FPS di setelan game untuk menghindari kebingungan pemain.