한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

Анатомия игровых лагов › L2 ОС и устройство клиента

Нехватка видеопамяти (VRAM) VRAM over-commit

ID причины co-vram · Основной ответственный Команда разработки · Разработка клиента · Совместно Внешние стороны · Внешние стороны

Открыть карточку в основной версии с иллюстрациями и экспериментами →

Если графическим настройкам нужно больше памяти, чем есть на видеокарте, ОС выгружает текстуры в оперативную память ПК и загружает обратно, и появляются микрофризы.

Почему Высокое качество текстур, множество разного снаряжения и эффектов в людном месте забивают память видеокарты → Следствие ОС переносит неиспользуемые сейчас текстуры в оперативную память ПК, а когда они нужны, возвращает их по медленной шине PCIe → На экране Рывки при каждом появлении новой сцены или нового персонажа, текстуры какое-то время размытые

Симптомы
Микрофризы, Фриз
Факторы
Остановка
У кого
Только у меня
Когда
При наплыве игроков, В движении и при смене локации
Ответственные
Основной ответственный Команда разработки · Разработка клиента · Совместно Внешние стороны · Внешние стороны
Команда разработки: задачи
Выбирать настройки по умолчанию под объём видеопамяти, при выходе за бюджет памяти автоматически снижать качество текстур, в людных местах упрощать текстуры персонажей.
Внешние стороны: задачи
Посоветовать игрокам снизить качество текстур, а при запуске двух клиентов снизить настройки ещё сильнее.
Цифры для ориентира
Память видеокарты читает сотни GB в секунду, а шина PCIe между ней и оперативной памятью ПК, в зависимости от поколения, передаёт около 16–64 GB в секунду, то есть более чем в десять раз медленнее.
На графике
Упор в лимит (плато) · выделенная память GPU, общая память GPU
Где смотреть
Смотреть графики выделенной и общей памяти графического процессора в разделе GPU на вкладке «Производительность» Диспетчера задач (на вкладку «Подробности» можно добавить такие же столбцы по процессам) вместе со временем кадра в PresentMon
Подтверждает
Пока выделенная память GPU упирается в предел и график становится плоским, а общая растёт, рывки частые. При снижении качества текстур они пропадают
Опровергает
Если выделенная память не заполнена, это «Стриминг ассетов отстаёт из-за медленного накопителя» или «Синхронная загрузка и компиляция шейдеров в главном потоке»
Чем проверить
Проверка на стороне игрока
Подробнее
Признак: в разделе GPU Диспетчера задач Windows «Выделенная память графического процессора» заполнена, а «Общая память графического процессора» растёт. Если на одном ПК запущены два клиента, память заполняется быстрее (см. причину «Сбой стриминга из-за нехватки памяти или VRAM»).

Источники

  1. Residency Microsoft
    У процесса есть бюджет видеопамяти, и при его превышении ядро ОС переносит часть кучи дискретного GPU в оперативную память ПК (это крайняя мера, поэтому рекомендуется следить за бюджетом)
  2. GPUs in the task manager Microsoft
    Выделенная память GPU в Диспетчере задач означает VRAM видеокарты, общая память GPU означает оперативную память ПК, которую делят GPU и CPU
  3. CUDA C++ Best Practices Guide NVIDIA
    Пропускная способность видеопамяти (V100: 898 GB/s) намного выше, чем у PCIe x16 3-го поколения (16 GB/s), поэтому рекомендуется сокращать обмен с оперативной памятью ПК
  4. PresentMon Capture Application (README-CaptureApplication.md) Intel
    Запись времени каждого кадра через FrameTime (время CPU между кадрами)

Смотрите также

Тот же слой: L2 ОС и устройство клиента

Причины с тем же симптомом (Микрофризы) на других слоях

Карточка в основной версии с иллюстрациями и экспериментами