Intervensi Mode Game

Intervensi Mode Game adalah pengoptimalan khusus game yang ditetapkan oleh pabrikan peralatan asli (OEM) untuk meningkatkan performa game yang tidak lagi diupdate oleh developer. Contoh:

  • Menggunakan pengubahan ukuran backbuffer WindowManager.
  • Menggunakan ANGLE sebagai ganti driver GLES native.

Anda dapat meminta dukungan game dan mengelola Game Mode API agar menggantikan intervensi Mode Game yang disediakan oleh OEM.

Game Mode API dan intervensi tersedia di:

Setiap game dapat:

  • Mengimplementasikan perilaku Game Mode API,
  • Mengusulkan setelan intervensi Mode Game kepada OEM, atau
  • Memilih tidak ikut intervensi Mode Game secara eksplisit.

Latar belakang

Bagian ini menjelaskan fungsi intervensi Mode Game dan cara mengoptimalkan game untuk setiap mode.

Mengubah ukuran backbuffer WindowManager

Intervensi pengubahan ukuran backbuffer WindowManager dapat mengurangi pemuatan GPU perangkat. Hal ini juga dapat mengurangi konsumsi baterai saat game disetel ke kecepatan frame target.

Mengaktifkan perubahan ukuran dapat mengurangi hingga 30% GPU dan 10% dari penggunaan daya sistem secara keseluruhan. Hasilnya dapat bervariasi berdasarkan perangkat yang digunakan, kondisi lingkungan, dan faktor lainnya, seperti pemrosesan bersamaan.

Game yang tidak berjalan dan terikat GPU kemungkinan akan mengalami kecepatan frame yang lebih tinggi selama pemuatan GPU yang lebih sedikit.

Sebaiknya semua game memiliki kecepatan yang baik, karena kecepatan frame yang tidak merata memengaruhi cara pengguna menilai performa secara signifikan.

Throttling FPS

Throttling FPS Android adalah intervensi Mode Game yang membantu game berjalan pada kecepatan frame yang lebih stabil untuk mengurangi konsumsi baterai. Intervensi ini tersedia di Android 13 atau yang lebih baru. Untuk mengetahui informasi selengkapnya, baca ringkasan throttling FPS.

Mengevaluasi intervensi Mode Game

Bagian ini menggunakan perintah adb.

Menyiapkan mode

Anda harus memilih tidak ikut Mode Game di file konfigurasi Mode Game aplikasi sebelum menguji intervensi Mode Game. Jika tidak, platform akan mengabaikannya dan hanya menerapkan pengoptimalan dalam game.

<?xml version="1.0" encoding="UTF-8"?>
<game-mode-config
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:supportsBatteryGameMode="false"
    android:supportsPerformanceGameMode="false"
/>

(Opsional) Mencadangkan konfigurasi perangkat yang ada

Untuk Pixel atau perangkat lain, mungkin ada konfigurasi intervensi game yang sudah ada sebelumnya dalam konfigurasi perangkat Anda. Anda dapat membuat kueri konfigurasi menggunakan perintah:

adb shell device_config get game_overlay <PACKAGE_NAME>

Jika kueri menampilkan null, abaikan konfigurasi yang sudah ada. Jika tidak, simpan dan reset ke class tersebut setelah evaluasi.

Mengevaluasi Intervensi

Untuk mengevaluasi intervensi pengubahan ukuran backbuffer WindowManager, gunakan perintah berikut untuk menetapkan nilai pengubahan ukuran buffer WindowManager yang berbeda di seluruh mode game.

adb shell device_config put game_overlay <PACKAGE_NAME>
mode=2,downscaleFactor=0.9:mode=3,downscaleFactor=0.5

Pada contoh di atas, mode=2 adalah “Performa” dan mode=3 adalah “Penghemat Baterai”. Nilai downscaleFactor ditentukan sebagai persen yang berlaku untuk setelan perubahan ukuran (misalnya, 0,7 adalah 70% dan 0,8 adalah 80%). Perubahan ukuran 90% (0,9) hampir dapat diabaikan, sedangkan 50% (0,5) berarti signifikan.

Peringatan: Proses turunan mungkin tidak diubah ukurannya dengan benar di Android 12. Secara khusus, pastikan toast dan pop-up dirender dengan benar. Sebaiknya batasi setelan perubahan ukuran setidaknya hingga 70%.

Setelah vali perubahan ukuran baru disiapkan, beralihlah antar-mode game untuk melihat bagaimana game Anda terpengaruh oleh intervensi pengubahan ukuran backbuffer WindowManager:

adb shell cmd game mode [standard|performance|battery] <PACKAGE_NAME>

Pastikan Anda memulai ulang game setelah setiap mode game dipilih. Intervensi downscaling mengharuskan aplikasi dimulai ulang.

Memilih tidak ikut intervensi

Anda dapat mengontrol apakah intervensi diterapkan pada game Anda dengan memilih tidak ikut. Setiap interval memiliki setelan untuk tidak ikut sertanya sendiri.

  1. File XML konfigurasi yang sama yang digunakan untuk mengontrol keikutsertaan dan ketidakikutsertaan Mode Game juga digunakan untuk setelan intervensi:
<?xml version="1.0" encoding="UTF-8"?>
<game-mode-config
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:allowGameDownscaling="false"
    android:allowGameFpsOverride="false"
/>
  1. Buat ulang dan kirim ulang game Anda untuk memilih tidak ikut.

Secara default, intervensi yang ditetapkan oleh pabrikan peralatan asli (OEM) akan digunakan, kecuali jika Anda secara eksplisit memilih untuk tidak menggunakannya.

Referensi

Untuk informasi cara mengukur dan mengoptimalkan performa game lebih lanjut: