El ancho de banda de memoria de los datos de Vertex puede ser un posible cuello de botella para el rendimiento de la GPU de tu juego. Hay algunos contadores en un perfil del sistema AGI que pueden ayudar a diagnosticar problemas de ancho de banda de memoria de Vertex.
Contadores de Qualcomm Adreno
En los dispositivos con GPU Qualcomm Adreno, se incluyen algunos contadores destacados:
Contraofertar | Descripción |
---|---|
Lectura de memoria de Vertex | Ancho de banda de los datos de vértices leídos desde la memoria externa. |
Promedio de bytes por vértice | Tamaño promedio de los datos de vértices, en bytes. |
Porcentaje de bloqueos de recuperación de Vertex | Porcentaje de ciclos de reloj en los que la GPU está bloqueada en los datos de vértices. |
Contadores de ARM Mali (en construcción)
En los dispositivos con GPU ARM Mali, algunos contadores destacados incluyen los siguientes:
Contraofertar | Descripción |
---|---|
Carga o almacena ritmos de lectura de una memoria externa | Los datos superan a los que se leen desde la memoria externa por la unidad de carga o almacenamiento, promediados por los núcleos del sombreador. |
Carga o almacena ritmos de lectura de la caché de L2 | Los datos superan la lectura de la caché L2 por la unidad de carga/almacenamiento, promediada en los núcleos del sombreador. |
[Más] |
Para calcular el ancho de banda total de los tiempos de lectura promedio, el valor del contador se multiplica por el ancho del bus (generalmente, 16 bytes) y por la cantidad total de núcleos del sombreador. [Más]
Contador
Para medir el comportamiento de estos contadores, puedes medir el ancho de banda promedio y máximo en el transcurso de un solo marco de GPU, que se puede delimitar con un bloque contiguo de uso de GPU.
![Ancho de banda de lectura de memoria de Vertex para un solo fotograma, con un valor promedio de 327 MBps y un máximo de 1.16 GBps](https://developer.android.com/static/images/agi/vertex-memory-bw-images/sample_vert_bw.png?authuser=5&hl=es)
Recomendamos un ancho de banda máximo de lectura de memoria de vértice de no más de 1.5 GBps y un ancho de banda promedio no superior a 500 Mbps. Los valores más altos indican uno de algunos problemas comunes:
- El tamaño de los vértices es demasiado grande: Es posible que los vértices tengan atributos de vértices grandes o una gran cantidad de estos, lo que afecta el tiempo del sombreado de los vértices a gran escala.
- Las transmisiones de atributos de Vertex no se dividen: Los atributos de Vertex se intercalan en un solo búfer, lo que reduce la eficiencia de la caché.
- Se enviaron demasiados vértices por fotograma: Los modelos complejos o una gran cantidad de modelos pueden ocupar más ancho de banda y tardar más en mostrarse.
Los problemas de tamaño de Vertex también se pueden diagnosticar a través del segmento Promedio de bytes / Vertex, que recomendamos que no supere los 32 bytes o los vértices.
![Tamaño promedio de vértice para un solo fotograma, con un valor promedio de 31.3 bytes](https://developer.android.com/static/images/agi/vertex-memory-bw-images/sample_bytes_per_vert.png?authuser=5&hl=es)
La mejor manera de diagnosticar cuál de estos problemas es mediante un seguimiento de perfil de fotogramas para analizar formatos de vértices.