nvlddmkm, код события 13 и сбои nvlddmkm.sys: сброс драйвера и TdrDelay
Событие 13 от nvlddmkm пишет видеодрайвер NVIDIA; Display 4101 значит, что Windows его сбросила. Увеличение TdrDelay лишь удлиняет каждое зависание.
nvlddmkm — имя службы видеодрайвера NVIDIA, nvlddmkm.sys, поэтому событие с кодом 13 от источника nvlddmkm — это запись, которую сам драйвер делает в журнал «Система», а событие 4101 от Display в то же время значит, что драйвер перестал отвечать и Windows его сбросила. Увеличение TdrDelay не исправляет ни то, ни другое: Microsoft говорит, что конечным пользователям не следует менять ключи реестра TDR, а более долгая задержка лишь дольше держит зависший экран застывшим до сброса. w0a не записывает ни одно из этих значений; его карточка «Восстановление после сбоя видеокарты» удаляет их, чтобы снова действовали значения Windows по умолчанию.
Что такое nvlddmkm, код события 13 и код события 4101
nvlddmkm.sys — часть видеодрайвера NVIDIA, работающая в режиме ядра: свойства самого файла описывают его как «NVIDIA Windows Kernel Mode Driver», а Windows запускает его как службу nvlddmkm. События, которые драйвер пишет в журнал «Система», несут это имя службы как источник.
Код события что-то значит только вместе со своим источником. У источника Display 4101 — собственная запись Windows о сбросе драйвера. Другие источники используют тот же номер: на ПК, где проверялись эти строки, ещё 24 источника журнала «Система», среди них Tcpip и Dnscache, определяют свой 4101. У nvlddmkm 13 — номер, который драйвер NVIDIA выбрал для себя сам.
Windows не может описать этот код 13 одной фразой. На ПК, где проверялось это руководство, с драйвером NVIDIA 621.01, у источника nvlddmkm не зарегистрирован файл сообщений, поэтому «Просмотр событий» сообщает, что не может найти описание для кода события, а затем выводит тот текст, который приложил драйвер. Документация Microsoft по TDR тоже не перечисляет коды NVIDIA, так что это руководство не гадает о значении: опираться можно на текст драйвера и время.
А вот 4101 от Display расписан словами. Его текст: «Видеодрайвер … перестал отвечать и был успешно восстановлен.», где на месте многоточия стоит имя драйвера.
Что такое сброс драйвера
Microsoft называет этот механизм обнаружением и восстановлением после превышения времени ожидания (TDR, Timeout Detection and Recovery). Когда GPU не может ни завершить, ни прервать текущую задачу за время ожидания, ОС считает, что GPU завис, и Windows сбрасывает видеокарту, чтобы вся система не перестала отвечать. Время ожидания по умолчанию — две секунды. После успешного восстановления Windows показывает сообщение о том, что видеодрайвер перестал отвечать и был восстановлен, и записывает это сообщение в «Просмотр событий».
Сброс не всегда на этом заканчивается:
- Повторные сбросы заканчиваются синим экраном. По умолчанию Windows останавливает ПК с ошибкой (bug check) на шестом зависании GPU, если за одну минуту обнаруживает пять или больше зависаний GPU (0x117) с последующим восстановлением.
- Неудачный сброс — сразу синий экран. Ошибка 0x116 VIDEO_TDR_FAILURE означает, что попытка сбросить видеодрайвер и восстановиться после превышения времени ожидания не удалась. В примере анализа этого кода остановки у самой Microsoft сбойным модулем назван
nvlddmkm.sys. - Игра может остаться чёрной. Microsoft отмечает, что некоторые старые приложения DirectX в конце этого восстановления могут выводить только чёрный экран, и пользователю приходится их перезапускать.
Найди события в «Просмотре событий»
- Нажми Windows + R, введи
eventvwr.mscи нажми Enter. - На левой панели открой Журналы Windows и выбери Система.
- Нажми на заголовок столбца Источник, чтобы отсортировать список; записи
Displayиnvlddmkmтеперь стоят каждая своим блоком. - Выбери запись и прочитай вкладку Общие под списком вместе с её временем и полем Код события.
PowerShell выдаёт тот же список одной строкой, от новых к старым:
Get-WinEvent -FilterHashtable @{ LogName = 'System'; ProviderName = 'Display', 'nvlddmkm' } -MaxEvents 30 | Format-Table TimeCreated, ProviderName, Id -AutoSize
Если PowerShell отвечает, что события не найдены, ни у одного из двух источников в журнале «Система» не осталось записей, и эта страница не твой след: Почему вылетела игра? разбирает другие записи.
Как читать найденное
Сравнивай время. 4101 от Display в тот момент, когда изображение почернело и вернулось, — это сработавший сброс. Запись nvlddmkm в ту же минуту относится к тому же случаю. Несколько 4101 за одну минуту и следом перезагрузка подходят под правило «пять за минуту» выше, а с дампа этого синего экрана продолжает Почему вылетела игра?.
Что проверить, по одному изменению за раз
Решение Microsoft для 0x116 начинается с драйвера, а затем перечисляет железо: разогнанные компоненты, неверную совместимость и настройки компонентов (особенно конфигурацию и тайминги памяти), недостаточное охлаждение, недостаточное питание и неисправные детали. Проверяй после каждого шага, чтобы знать, какое изменение сыграло роль.
- Переустанови драйвер начисто. По словам Microsoft, может понадобиться установить последние обновления видеодрайвера, чтобы он правильно поддерживал процесс TDR. В NVIDIA app открой Драйверы, выбери Переустановить для установленного драйвера, выбери Выборочная установка и отметь Чистая установка; по словам приложения, этот вариант «Восстанавливает все профили и настройки драйвера по умолчанию». Чистая установка ради стабильных 1% low проводит через полную переустановку драйвера, включая Display Driver Uninstaller.
- Сними разгон с видеокарты. Включи Режим отладки в разделе Система > Расширенные в NVIDIA app; по словам приложения, он «Удаляет все текущие настройки разгона ГП (пользовательские и/или заводские) до перезапуска системы». Если ты применял смещение в w0a, кнопка Сбросить к значениям по умолчанию на его странице Видеокарта возвращает заводские значения.
- Проверь память на настройках по умолчанию. Конфигурация и тайминги памяти есть в списке Microsoft, поэтому профиль XMP или EXPO либо вручную настроенные тайминги стоят одной проверки без них. Память не на заявленной скорости? показывает, как проверить профиль и протестировать модули.
- Проверь охлаждение и питание. Следи за температурой GPU под нагрузкой по руководству Температура процессора и видеокарты в играх; если ПК ещё и сам выключается, сторону питания разбирает ПК перезагружается или выключается во время игры.
- Обнови игру. Контрольный список Microsoft требует, чтобы на приложения с высокой графической нагрузкой (например, игры) были установлены все исправления.
Почему w0a никогда не записывает TdrDelay и TdrLevel
Изменить задержку TDR — значит поднять TdrDelay выше значения по умолчанию; отключить TDR — значит выставить TdrLevel в 0. Справка Microsoft по ключам реестра TDR прямо говорит о том и другом: эти ключи нужны только для тестирования и отладки при разработке драйверов, и конечным пользователям не следует трогать эти ключи реестра («End users shouldn't manipulate these registry keys.»).
Что делают эти два значения, следует из той же страницы. TdrDelay фактически и есть порог времени ожидания, по умолчанию две секунды: зависшая видеокарта сбрасывается, только когда это время истекает, поэтому большее число не останавливает зависание, а лишь дольше держит экран застывшим до сброса. TdrLevel 0 в таблице Microsoft значится как «Detection disabled» (обнаружение отключено): Windows больше не замечает зависание, поэтому ничто не сбрасывает видеокарту.
w0a не записывает ни одного значения TDR: TdrDelay и TdrLevel в его списке запретов, который не обходит даже восстановление из резервной копии. Причина — реальная машина: старые сборки w0a поднимали TdrDelay до 10 секунд, и на ней эти ключи вешали CS2. w0a делает обратное.
Карточка Восстановление после сбоя видеокарты на странице Fix удаляет TdrLevel, TdrDelay, TdrDdiDelay, TdrLimitCount и TdrLimitTime в HKLM\SYSTEM\CurrentControlSet\Control\GraphicsDrivers. Без этих значений Windows работает на своих значениях по умолчанию: восстановление включено, время ожидания 2 секунды, 5 секунд для TdrDdiDelay и пять сбросов, разрешённых за 60 секунд. Введи tdr в поле поиска на странице, чтобы найти карточку. Она просит перезагрузку, если что-то удалила, и сообщает, если удалять было нечего.
Карточка не мешает GPU зависать. Она возвращает собственную страховку Windows, а причина по-прежнему в одном из пунктов проверки выше.
Сканер фризов считает события 4101 от Display за последние 24 часа и предупреждает, если TdrLevel 0 отключил восстановление.
Частые вопросы
Что значит код события 13 от nvlddmkm?
Это запись, которую видеодрайвер NVIDIA сделал от своего источника, и у Windows нет для неё собственного описания. Прочитай текст, приложенный драйвером, на вкладке Общие и поищи 4101 от Display в ту же минуту: если он есть, драйвер был сброшен, и проверки выше в силе.
Сломан ли nvlddmkm.sys, если его называет синий экран?
Не обязательно. Собственный пример Microsoft для VIDEO_TDR_FAILURE называет nvlddmkm.sys, а причины в её списке тянутся от драйвера до разгона, настроек памяти, охлаждения, питания и неисправных деталей. Для драйвера, названного в ошибке, совет Microsoft — узнать у его производителя об обновлениях драйвера.
Стоит ли увеличить TdrDelay, чтобы вылеты прекратились?
Нет. Microsoft говорит, что конечным пользователям не следует его менять, а более длинный TdrDelay лишь заставляет Windows дольше ждать, прежде чем сбросить зависшую видеокарту. Если его подняла старая программа, карточка «Восстановление после сбоя видеокарты» его удалит.
Можно ли отключить TDR через TdrLevel 0?
Можно, и в этом проблема: Microsoft указывает 0 как «Detection disabled» (обнаружение отключено). Тогда Windows вообще не обнаруживает зависание, поэтому не сбрасывает видеокарту, а сброс существует, чтобы вся система не перестала отвечать.
Почему игра остаётся чёрной, когда изображение вернулось?
Microsoft отмечает, что некоторые старые приложения DirectX в конце этого восстановления могут выводить только чёрный экран и их нужно перезапустить. Перезапусти игру; если сбросы продолжаются, пройди проверки выше по порядку.
Похожие статьи
- Почему вылетела игра? Монитор стабильности системы и просмотр событий
- Чистая установка ради стабильных 1% low
- Температура процессора и видеокарты в играх: что нормально
- Память не на заявленной скорости? XMP, EXPO и двухканальный режим
- ПК перезагружается или выключается во время игры: Kernel-Power 41
Если античит не запускается, вот как проверить Secure Boot и TPM 2.0 и включить их, не попав в блокировку BitLocker: Secure Boot и TPM 2.0 для античита (VALORANT, FACEIT): как проверить и включить
3 дня Pro — активируются прямо в приложении через Discord, без карты: Как работает бесплатный триал
Эта страница помогла?
Чего не хватило или что не сработало? Мы читаем каждый такой ответ.
Отправляется только то, что ты напишешь, вместе с названием этой страницы. Наш сервер также записывает IP-адрес подключения, чтобы ограничить злоупотребления, и удаляет его вместе с сообщением. Пожалуйста, не пользуйся этим полем, если тебе меньше 16 лет. Политика конфиденциальности
Если эта страница не решила проблему, напиши нам — скажи, какую статью ты читал, и мы её исправим.