Когда два клиента делят видеопамять, для новых моделей и текстур не остаётся места, и часть объектов не рисуется.
Почему Два клиента делят VRAM и RAM. Кроме того, ОС может в первую очередь урезать квоту видеопамяти фонового окна → Следствие Движок не может загрузить новые модели и текстуры или постоянно выгружает и загружает их снова → На экране NPC появляются с опозданием, размыты или не видны, микрофризы
В движении и при смене локации, При наплыве игроков
Ответственные
Основной ответственный Команда разработки · Разработка клиента · Совместно Внешние стороны · Внешние стороны
Команда разработки: задачи
Автоматически подстраивать качество под бюджет памяти, при неудачной загрузке показывать замещающую модель.
Внешние стороны: задачи
Игрокам, которые запускают два клиента одновременно, посоветовать снизить качество графики или включить режим для слабых ПК, сообщить рекомендуемые требования к VRAM и RAM.
На графике
Упор в лимит (плато) · использование выделенной памяти GPU по процессам
Где смотреть
На ПК игрока добавить на вкладке «Подробности» Диспетчера задач столбец выделенной памяти GPU и сравнить суммарное использование двух клиентов с объёмом VRAM видеокарты. В игре записывать бюджет (Budget) и текущее использование (CurrentUsage), которые сообщает QueryVideoMemoryInfo в DXGI
Подтверждает
Суммарное использование двух клиентов выходит на плато около объёма VRAM, а неудачные загрузки моделей и текстур приходятся на моменты, когда текущее использование превышает бюджет. При снижении качества или с одним клиентом проблема пропадает
Опровергает
Если VRAM хватает, а объекты не видны, причина в конфликте одновременного доступа к файлам кэша и ассетов или в разных настройках отображения
Чем проверить
Проверка на стороне игрока
Источники
Residency (Direct3D 12)Microsoft Бюджет видеопамяти может сильно уменьшиться при переключении на другое приложение, а при превышении бюджета возможны подвисания или сбои при создании ресурсов. Если приложение не на переднем плане, даже зарезервированный объём не гарантирован
GPUs in the task managerMicrosoft Если добавить столбцы на вкладке «Подробности» Диспетчера задач, видно использование выделенной и общей памяти GPU по процессам. Выделенная память GPU означает VRAM видеокарты
DXGI_QUERY_VIDEO_MEMORY_INFO structure (dxgi1_4.h)Microsoft Budget (бюджет видеопамяти, заданный ОС) и CurrentUsage (текущее использование приложением). Если использование превышает бюджет, возможны рывки