Doku verilerinin bellek bant genişliği, uygulamanızın GPU performansı için olası bir darboğaz olabilir. AGI Sistem Profilinde, doku belleği bant genişliği sorunlarını teşhis etmeye yardımcı olabilecek bazı sayaçlar bulunur.
Qualcomm Adreno sayaçları
Qualcomm Adreno GPU'lu cihazlarda öne çıkan bazı sayaçlar şunlardır:
| Tezgah | Açıklama |
|---|---|
| Doku Belleği Okuma BW (Bayt/Saniye) | Harici bellekten okunan doku verilerinin bant genişliği. |
| % Doku L1 Kaçırma | Doku getirme işleminden kaynaklanan L1 önbellekte yok. |
| Temel Olmayan Doku Yüzdesi | Doku getirme işlemlerinin mipmap olanlarının yüzdesi. |
| % Anisotropik Filtrelenmiş | Anisotropik olarak filtrelenen tekellerin yüzdesi. |
ARM Mali sayaçları
ARM Mali GPU'lu cihazlarda dikkat çeken bazı sayaçlar şunlardır:
| Tezgah | Açıklama |
|---|---|
| Harici bellekten okunan doku vuruşları | Doku birimi tarafından harici bellekten okunan ve gölgelendirici çekirdekleri üzerinde ortalaması alınan veri bitleri. |
| L2 önbelleğinden doku okuma | Doku birimi tarafından L2 önbelleğinden okunan veriler, gölgelendirici çekirdekleri üzerinde ortalaması alınarak hesaplanır. |
| [Diğer] |
Ortalama okuma vuruşlarından genel bant genişliğini hesaplamak için sayaç değeri, veri yolu genişliği (genellikle 16 bayt) ve toplam gölgelendirici çekirdeği sayısı ile çarpılır.
Karşı analiz
Bu sayaçların davranışını ölçmek için tek bir GPU çerçevesi boyunca ortalama ve en yüksek bant genişliğini ölçün, ardından GPU kullanımının bitişik bir bloğuyla sınırlayın.
Ortalama doku belleği okuma bant genişliğinin 1 Gb/sn'den, tepe bant genişliğinin ise 3 Gb/sn'den yüksek olmamasını öneririz. Doku L1 önbellekte yok oranı da %10'dan yüksek olmamalıdır. Bant genişliği veya L1 önbelleği için daha yüksek değerler, aşağıdakiler de dahil olmak üzere daha derin doku sorunlarının göstergesi olabilir:
- Dokular çok büyük: Büyük dokular paket boyutunuzu şişirir, daha pahalıdır ve önbellek verimliliğini azaltabilir.
- Doku sıkıştırılmamış: Tüm Android telefonlar, ETC1 veya ASTC gibi bazı doku sıkıştırma türlerini destekler. Paket boyutunu ve doku bant genişliğini azaltmak için dokular sıkıştırılmalıdır.
- Diğer: 2'nin kuvveti olan dokular, mip eşleme ve anizotropik filtreleme gibi çeşitli doku sorunları da göz önünde bulundurulmalıdır. Bunlardan bazıları, aşağıda açıklandığı gibi Sistem Profilinden gözlemlenebilirken bazıları daha ayrıntılı inceleme gerektirebilir.
Serbest kameralı üç boyutlu oyunlarda, doku öğeleri mipmapping kullanmalıdır. Böylece kameradan uzaktaki nesneler daha az bellek bant genişliğine, daha iyi doku önbelleği verimliliğine ve daha iyi görüntü kalitesine sahip olur. Qualcomm Adreno GPU'ları kullanan cihazlarda, ortalama %10'dan düşük Non-Base Level Textures sayaçları yetersiz mipmapping'i gösterebilir.
Bir diğer husus da, Qualcomm Adreno GPU'lar için % Anisotropic Filtered sayacıyla açıklanan ve doku öğelerinin ne kadarının anizotropik olarak filtrelendiğini gösteren anizotropik filtrelemenin kullanılmasıdır. Bu özellik bazı oyunlarda görsel kaliteyi artırsa da çok maliyetli olabilir ve kullanımı GPU performans maliyetiyle karşılaştırılmalıdır.
Daha spesifik sorunları teşhis etmenin en iyi yolu, doku öğelerini analiz etmek için bir kare profili izi almaktır.