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

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

Вмешательство оверлеев Overlays and screen hooks

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

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

Мессенджеры, лаунчеры, программы записи и счётчики FPS встраиваются в рендеринг игры (хукинг), чтобы рисовать свой UI поверх игровой картинки. Работы в каждом кадре становится больше, а иногда оверлей конфликтует с игрой, и она дёргается или принудительно закрывается.

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

Симптомы
Микрофризы, Фриз, Дисконнект
Факторы
Остановка
У кого
Только у меня
Когда
Всегда, Изредка, случайно
Ответственные
Основной ответственный Внешние стороны · Внешние стороны · Совместно Команда разработки · Разработка клиента
Команда разработки: задачи
Собирать вместе с краш-репортами и логами микрофризов список запущенных оверлеев.
Внешние стороны: задачи
На жалобу попросить игрока выключить все оверлеи и проверить ещё раз.
На графике
Высоко только у некоторых · время кадра и число крашей (у игроков с включёнными оверлеями)
Где смотреть
Выключить все оверлеи и сравнить время кадра в PresentMon в той же сцене, а при крашах посмотреть имя сбойного модуля (Faulting module name) в событии с кодом 1000 в Просмотре событий
Подтверждает
С выключенными оверлеями рывки и графические ошибки пропадают, или сбойным модулем в краше оказывается DLL программы с оверлеем
Опровергает
Если с выключенными оверлеями всё то же самое, это графический драйвер или «Краш клиента»
Чем проверить
Проверка на стороне игрока
Подробнее
Если микрофризы или вылеты бывают только у отдельных игроков и железом это не объяснить, первым делом подозревают конфликт оверлея с модулем защиты игры.

Источники

  1. Steam Overlay (Steamworks Documentation) Valve
    Оверлей Steam автоматически подключается через хуки к играм, запущенным из Steam, и из-за такого способа может выявлять ошибки работы с памятью в том, как игра использует API рендеринга, что приводит к крашам
  2. PresentMon Capture Application (README-CaptureApplication.md) Intel
    Запись времени каждого кадра через FrameTime (время CPU между кадрами)
  3. The application or service crashing behavior troubleshooting guidance Microsoft
    Событие с кодом 1000 в журнале «Приложение» содержит имя сбойного модуля (Faulting module name). Из-за повреждения, вызванного другим модулем, сбойным иногда указывается модуль Windows

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

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

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

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