A largura de banda da memória dos dados do vértice pode ser um possível gargalo para o desempenho da GPU do jogo. Há alguns contadores em um perfil do sistema AGI que podem ajudar a diagnosticar problemas de largura de banda de memória do vértice.
Contadores Qualcomm Adreno
Em dispositivos com GPUs Qualcomm Adreno, alguns contadores importantes incluem:
Enviar contraoferta | Descrição |
---|---|
Leitura de memória Vertex | Largura de banda dos dados do vértice lidos da memória externa. |
Média de bytes/vértices | Tamanho médio dos dados do vértice, em bytes. |
% de parada de busca de vértices | Porcentagem de ciclos de clock em que a GPU está bloqueada nos dados de vértice. |
Contadores da ARM Mali (WIP)
Em dispositivos com GPUs ARM Mali, alguns contadores importantes incluem:
Enviar contraoferta | Descrição |
---|---|
Carregar/armazenar batidas de leitura da memória externa | Os dados superam a leitura da memória externa pela unidade de carga/armazenamento, calculada sobre os núcleos do sombreador. |
Carregar/armazenar batidas de leitura do cache L2 | Os tempos de dados lidos do cache L2 pela unidade de carregamento/armazenamento, calculados em média sobre os núcleos do sombreador. |
[Mais] |
Para calcular a largura de banda geral a partir das batidas médias de leitura, o valor do contador é multiplicado pela largura do barramento (normalmente 16 bytes) e pelo número total de núcleos de sombreador. [Mais]
Análise de contagem
Para medir o comportamento desses contadores, você pode medir a largura de banda média e máxima ao longo de um único frame de GPU, que pode ser delineada com um bloco contíguo de Utilização de GPU.
Recomendamos uma largura de banda de leitura de memória do vértice de pico não superior a 1, 5 GBps e uma largura de banda média não superior a 500 MBps. Valores mais altos são indicadores de um de alguns problemas comuns:
- O tamanho do vértice é muito grande: os vértices podem ter atributos de vértice grandes ou um grande número de atributos de vértice, afetando muito o tempo de sombreamento de vértices.
- Os fluxos de atributos da Vertex não são divididos: os atributos da Vertex 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.
Os problemas de tamanho do vértice também podem ser diagnosticados pela faixa Average Bytes / Vertex, que recomendamos ter, no máximo, 32 bytes ou vértices.
A melhor maneira de diagnosticar qual desses problemas você está enfrentando é fazer um rastro de perfil de frame para analisar formatos de vértice.