La larghezza di banda della memoria dei dati del vertice può essere un potenziale collo di bottiglia per le prestazioni della GPU del tuo gioco. In un profilo di sistema AGI sono presenti alcuni contatori che possono aiutare a diagnosticare i problemi relativi alla larghezza di banda della memoria verticale.
Contatori Qualcomm Adreno
Sui dispositivi con GPU Qualcomm Adreno, alcuni contatori degni di nota sono:
Negozia | Descrizione |
---|---|
Lettura memoria Vertex | Larghezza di banda dei dati del vertice letti dalla memoria esterna. |
Byte medi/Vertex | Dimensione media dei dati del vertice, in byte. |
% stallo recupero vertice | Percentuale di cicli di clock in cui la GPU è bloccata sui dati del vertice. |
Contatori ARM Mali (in fase di elaborazione)
Sui dispositivi con GPU ARM Mali, alcuni contatori degni di nota includono:
Negozia | Descrizione |
---|---|
Carica/archivia beat di lettura dalla memoria esterna | Battiti dei dati letti dalla memoria esterna dall'unità di caricamento/archiviazione, calcolata in media sui core dello Shader. |
Carica/archivia i beat di lettura dalla cache L2 | Battiti di dati letti dalla cache L2 dall'unità di caricamento/archiviazione, calcolati in media sui core dello mesh. |
[Altro] |
Per calcolare la larghezza di banda complessiva dai battiti medi di lettura, il valore del contatore viene moltiplicato per la larghezza del bus (in genere 16 byte) e per il numero totale di core dello shabbyr. [Altro]
Analisi dei contatori
Per misurare il comportamento di questi contatori, puoi misurare la larghezza di banda media e massima nel corso di un singolo frame GPU, che possono essere definiti con un blocco contiguo di Utilizzo GPU.
![La larghezza di banda di lettura della memoria Vertex per un singolo frame, con un valore medio di 327 MBps e un valore di picco di 1,16 GBps](https://developer.android.google.cn/static/images/agi/vertex-memory-bw-images/sample_vert_bw.png?authuser=8&hl=it)
Consigliamo una larghezza di banda di lettura della memoria del vertice di picco non superiore a 1, 5 GBps e una larghezza di banda media non superiore a 500 MBps. I valori più elevati sono indicatori di uno di alcuni problemi comuni:
- La dimensione del vertice è troppo grande: i vertici possono avere attributi per il vertice grandi o un numero elevato di attributi dei vertici, che influiscono in generale sul tempo di ombreggiatura del vertice.
- Gli stream degli attributi Vertex non sono suddivisi: gli attributi di Vertex sono interleaving in un unico buffer, riducendo l'efficienza della cache.
- Troppi vertici inviati per frame: i modelli complessi e/o un numero elevato di modelli potrebbero utilizzare una larghezza di banda maggiore e richiedere più tempo per l'ombreggiatura.
I problemi relativi alle dimensioni dei vertici possono essere diagnosticati anche tramite la traccia Byte medi / Vertex, che consigliamo di non superare i 32 byte o verteci.
![La dimensione del vertice media per un singolo frame, con un valore medio di 31,3 byte](https://developer.android.google.cn/static/images/agi/vertex-memory-bw-images/sample_bytes_per_vert.png?authuser=8&hl=it)
Il modo migliore per diagnosticare quali di questi problemi potresti riscontrare è eseguire una traccia del profilo del frame per analizzare i formati dei vertici.