Bandwidth memori data tekstur dapat menjadi potensi hambatan untuk performa GPU aplikasi Anda. Ada beberapa penghitung di Profil Sistem AGI yang dapat membantu mendiagnosis masalah bandwidth memori tekstur.
Penghitung Qualcomm Adreno
Di perangkat dengan GPU Qualcomm Adreno, beberapa penghitung penting mencakup:
| Pengukur | Deskripsi |
|---|---|
| BW Baca Memori Tekstur (Byte/Detik) | Bandwidth data tekstur yang dibaca dari memori eksternal. |
| % Kesalahan Tekstur L1 | Cache L1 tidak ditemukan saat mengambil tekstur. |
| % Tekstur Non-Level Dasar | Persentase pengambilan tekstur yang merupakan mipmap. |
| % Penyaringan Anisotropik | Persentase texel yang difilter anisotropik. |
Penghitung ARM Mali
Di perangkat dengan GPU ARM Mali, beberapa penghitung penting mencakup:
| Pengukur | Deskripsi |
|---|---|
| Detak baca tekstur dari memori eksternal | Data yang dibaca dari memori eksternal oleh unit tekstur, dirata-ratakan di seluruh core shader. |
| Beat baca tekstur dari cache L2 | Data yang dibaca dari cache L2 oleh unit tekstur, dirata-ratakan di seluruh core shader. |
| [Lainnya] |
Untuk menghitung bandwidth keseluruhan dari irama baca rata-rata, nilai penghitung dikalikan dengan lebar bus (biasanya 16 byte) dan dengan jumlah total inti shader.
Analisis penghitung
Untuk mengukur perilaku penghitung ini, ukur bandwidth rata-rata dan puncak selama satu frame GPU, lalu batasi dengan blok Penggunaan GPU yang berdekatan.
Sebaiknya gunakan bandwidth baca memori tekstur rata-rata tidak lebih dari 1 GBps, dan bandwidth puncak tidak lebih dari 3 GBps. Cache L1 tekstur yang tidak ditemukan juga tidak boleh lebih tinggi dari 10%. Nilai yang lebih tinggi untuk bandwidth atau cache L1 dapat menjadi indikator masalah tekstur yang lebih dalam, termasuk:
- Tekstur terlalu besar: Tekstur besar akan memperbesar ukuran paket, lebih mahal, dan dapat mengurangi efisiensi cache.
- Tekstur tidak dikompresi: Semua ponsel Android mendukung beberapa jenis kompresi tekstur, baik ETC1 maupun ASTC. Tekstur harus dikompresi untuk mengurangi ukuran paket dan mengurangi bandwidth tekstur.
- Lainnya: Berbagai masalah tekstur lainnya harus dipertimbangkan, termasuk tekstur pangkat dua, mipmapping, penyaringan anisotropik, dan lainnya. Beberapa di antaranya dapat diamati dari Profil Sistem seperti yang dibahas di bawah, sedangkan yang lain mungkin memerlukan penyelidikan lebih mendalam.
Untuk game tiga dimensi dengan kamera bebas, aset tekstur harus menggunakan mipmapping, sehingga objek yang berjarak dari kamera akan memiliki bandwidth memori yang lebih rendah, efisiensi cache tekstur yang lebih baik, dan kualitas gambar yang lebih baik. Untuk perangkat yang menggunakan GPU Qualcomm Adreno, penghitung % Non-Base Level Textures yang rata-rata lebih rendah dari 10% dapat menunjukkan mipmapping yang tidak memadai.
Pertimbangan lainnya adalah penggunaan pemfilteran anisotropik, yang dijelaskan oleh penghitung % Anisotropic Filtered untuk GPU Qualcomm Adreno untuk proporsi texel yang difilter anisotropik. Meskipun dapat meningkatkan kualitas visual untuk beberapa game, hal ini juga dapat sangat mahal, dan penggunaannya harus dipertimbangkan terhadap biaya performa GPU.
Cara terbaik untuk mendiagnosis masalah yang lebih spesifik adalah dengan merekam rekaman aktivitas profil frame untuk menganalisis aset tekstur.