A largura de banda da memória dos dados de vértice pode ser um possível gargalo para o desempenho da GPU do jogo. Há alguns contadores em um perfil de sistema de AGI que podem ajudar a diagnosticar problemas de largura de banda da memória do Vertex.
Contadores do Qualcomm Adreno
Em dispositivos com GPUs Qualcomm Adreno, alguns contadores importantes incluem:
| Contador | Descrição |
|---|---|
| Leitura da memória do vértice | Largura de banda dos dados de vértice lidos da memória externa. |
| Média de bytes/vértices | Tamanho médio dos dados de vértice, em bytes. |
| % de parada de busca de vértices | Porcentagem de ciclos de clock em que a GPU é bloqueada em dados de vértice. |
Contadores do ARM Mali (em andamento)
Em dispositivos com GPUs ARM Mali, alguns contadores importantes incluem:
| Contador | Descrição |
|---|---|
| Carregar/armazenar beats de leitura da memória externa | Taxas de dados lidas da memória externa pela unidade de carga/armazenamento, com média nos núcleos do shader. |
| Carregar/armazenar beats de leitura do cache L2 | Taxas de dados lidos do cache L2 pela unidade de carga/armazenamento, com média nos núcleos do shader. |
| [Mais] |
Para calcular a largura de banda geral com base nas batidas de leitura médias, o valor do contador é multiplicado pela largura do barramento (normalmente 16 bytes) e pelo número total de núcleos de shader. [Mais]
Análise de contadores
Para medir o comportamento desses contadores, você pode medir a largura de banda média e de pico ao longo de um único frame de GPU, que pode ser delineado com um bloco contíguo de Utilização da GPU.
Recomendamos uma largura de banda máxima de leitura da memória de vértices de no máximo 1, 5 GBps e uma largura de banda média de no máximo 500 MBps. Valores mais altos são indicadores de um dos seguintes problemas comuns:
- O tamanho do vértice é muito grande: os vértices podem ter atributos grandes ou um grande número de atributos, afetando o tempo de sombreamento do vértice.
- Os fluxos de atributos de vértice não são divididos: os atributos de vértice são intercalados em um único buffer, reduzindo a eficiência do cache.
- Muitos vértices enviados por frame: modelos complexos e/ou um grande número de modelos podem ocupar mais largura de banda e levar mais tempo para serem sombreados.
Problemas de tamanho de vértice também podem ser diagnosticados usando a faixa Bytes médios / vértice, que recomendamos não ser maior que 32 bytes ou vértices.
A melhor maneira de diagnosticar qual desses problemas você pode estar enfrentando é fazer um rastreamento de perfil de frame para analisar formatos de vértice.