Пропускная способность памяти, используемой для обработки вершинных данных, может стать потенциальным узким местом для производительности графического процессора вашей игры. В системном профиле AGI есть несколько счетчиков, которые могут помочь диагностировать проблемы с пропускной способностью памяти вершин.
Счетчики Qualcomm Adreno
На устройствах с графическими процессорами Qualcomm Adreno можно отметить следующие показатели:
| Прилавок | Описание |
|---|---|
| Чтение из вершинной памяти | Пропускная способность данных вершин, считываемых из внешней памяти. |
| Среднее количество байт/вершина | Средний размер данных вершин в байтах. |
| % Задержка при извлечении вершины | Процент тактовых циклов, в течение которых графический процессор блокируется на обработке вершинных данных. |
ARM Mali counters (WIP)
На устройствах с графическими процессорами ARM Mali можно отметить следующие показатели:
| Прилавок | Описание |
|---|---|
| Загрузка/сохранение считанных ритмов из внешней памяти | Данные, считываемые из внешней памяти блоком загрузки/сохранения, усредняются по ядрам шейдера. |
| Загрузка/сохранение прочитанных данных из кэша L2 | Данные, считанные из кэша L2 блоком загрузки/сохранения, усреднены по шейдерным ядрам. |
| [Более] |
Для расчета общей пропускной способности на основе средних значений времени чтения значение счетчика умножается на ширину шины (обычно 16 байт) и на общее количество шейдерных ядер. [Подробнее]
Контранализ
Для оценки работы этих счетчиков можно измерить среднюю и пиковую пропускную способность в течение одного кадра GPU, которую можно выделить в виде непрерывного блока данных об использовании GPU .

Мы рекомендуем пиковую пропускную способность чтения из вершинной памяти не выше 1,5 ГБ/с и среднюю пропускную способность не выше 500 МБ/с. Более высокие значения указывают на одну из нескольких распространенных проблем:
- Размер вершины слишком велик : Вершины могут иметь большие значения атрибутов или большое количество атрибутов вершин, что в целом влияет на время затенения вершин.
- Потоки атрибутов вершин не разделяются : атрибуты вершин объединяются в один буфер, что снижает эффективность кэширования.
- Слишком много вершин, отправляемых за кадр : Сложные модели и/или большое количество моделей могут занимать большую пропускную способность и требовать больше времени для затенения.
Проблемы с размером вершин также можно диагностировать с помощью показателя «Среднее количество байт/вершина» , значение которого, как мы рекомендуем, не должно превышать 32 байта или количество вершин.

Лучший способ диагностировать, с какой из этих проблем вы можете столкнуться, — это выполнить трассировку профиля кадра для анализа форматов вершин .