Что такое обнаружение тайм-аута видеодрайвера Windows и задержка восстановления aida64

Обновлено: 21.11.2024

Я делюсь своей проблемой и обходным решением, но хотел бы получить ответ и помощь.

Материнская плата: MSI Mortar MAX bios v25

ЦП: AMD Ryzen 3600

ОЗУ: 16 ГБ (2x 8192 МБ) ADATA XPG Spectrix D80 32000

VGA: ASUS GeForce RTX 2060 ROG Strix Gaming OC 6 ГБ

Блок питания: Corsair Rmx 550

Кулер: EK Fluid Gaming A240

Чехол: Phanteks enthoo evolv matx

ИТАК: Windows 10 версии 1909

Драйвер Nvidia: 441.41

Драйвер AMD: 1.11.22.454

Несколько вылетов в разных играх (Call of Duty WWII, Destiny 2, Wolrd of Warships, Rocket League). Через разное время (30 секунд или 40 минут) игра вылетает, она перестает работать и компьютер возвращается к рабочему столу.

- В Destiny 2 ошибка была "ошибка брокколи" → проблема с драйвером видеокарты.

- Для Call of Duty WWII ошибка была: «DXGI_ERROR_DEVICE_REMOVED → аппаратная проблема».

- Rocket League и Wolrd of Warships просто аварийно завершают работу без ошибок → В реестре Windows отображается: «Событие активного ядра 141»

Действия, предпринятые для устранения проблем

Подводя итог и пишу не обязательно по порядку: переустановил винду, обновил винду, переустановил драйвер видеокарты Nvidia (только драйвер), переустановил драйвер чипсета AMD, удалил не нужные драйвера и софт. Пробовал разные драйвера Nvidia. Я пробовал 4 разных vga (все Nvidia gpu). Пробовал без драйвера чипсета AMD.

- HCI Memtest, после 10 часов ошибок не обнаружено.

- AIDA 64, через 10 часов ошибок не обнаружено.

- Prime 95, через 10 часов ошибок не обнаружено.

- Футурмарк, через 4 часа ошибок не обнаружено.

Итак, потратив несколько дней, проблема так и не была решена. Не забывайте, что я пробовал 4 разные видеокарты, чтобы исключить проблемы с железом, а стресс-тест остальных компонентов был отрицательным.

Создайте новый ключ реестра в Windows (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers)→ TdrLevel = 3 (другие значения мне не подошли).

Я не эксперт, здесь речь идет об «Обнаружении тайм-аута и восстановлении». Это функция операционной системы Windows, которая обнаруживает проблемы с откликом видеокарты и восстанавливает работоспособность рабочего стола путем сброса карты. ”

Я хотел бы знать, связан ли уровень TDR с неисправным оборудованием? Если да, то кто в моей задаче является «главным ответчиком»?

Этот раздел реестра оказывает негативное влияние на производительность vga? Например, низкий FPS.

Если это проблема с драйвером, то почему до конца 2019 года возникают подобные проблемы? Пожалуйста, Microsoft/AMD/Nvidia/MSI/Asus, вы можете что-нибудь сделать?

Спасибо за помощь и помощь.

Эта тема заблокирована. Вы можете подписаться на вопрос или проголосовать за него как полезный, но вы не можете отвечать в этой теме.

Сообщить о нарушении

Домогательство – это любое поведение, направленное на то, чтобы побеспокоить или расстроить человека или группу людей. К угрозам относятся любые угрозы самоубийства, насилия или причинения вреда другому человеку. Любой контент на тему для взрослых или неуместный для веб-сайта сообщества. Любое изображение, ссылка или обсуждение наготы. Любое поведение, которое является оскорбительным, грубым, вульгарным, оскверняет или демонстрирует неуважение. Любое поведение, которое может нарушать лицензионные соглашения с конечными пользователями, включая предоставление ключей продукта или ссылок на пиратское программное обеспечение. Незапрашиваемая массовая рассылка или массовая реклама. Любые ссылки на вирусы, шпионское ПО, вредоносное ПО или фишинговые сайты или их пропаганда. Любой другой неприемлемый контент или поведение, как это определено Условиями использования или Кодексом поведения. Любое изображение, ссылка или обсуждение, связанные с детской порнографией, детской наготой или другим жестоким обращением с детьми или их эксплуатацией.

Ответы (6) 

"Я пробовал без драйвера чипсета AMD."

– Скорее всего, это было бы контрпродуктивно. Должны быть установлены самые последние драйверы материнской платы.

Ошибки TDR стали проблемой с тех пор, как MS представила эту концепцию в Win7. Предполагалось, что TDR предотвратит преждевременный BSOD

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

Некоторое время я не видел много обсуждений, касающихся TDR, но, похоже, в последнее время они возвращаются.

– Если в конце 2019 года возникнут проблемы с драйверами, это будет связано с новой проблемой. Я не обновился до последней версии

Драйвер Nvidia (использующий v440.97 atm), но не было ошибки TDR с первых дней Win7. Так было с одной игрой, и похоже

быть вызвано слишком высокими настройками графики для GPU, который я использовал в то время.

Я понизил разрешение на один шаг, и ошибок TDR больше не было.

- Ошибки TDR почти всегда указывают на драйвер как на причину сбоя, но чаще всего это подделка. Причина

Очень часто вину берут на себя драйвер, потому что он вылетает последним в цепочке событий, которые приводят к зависанию или вылету игры.

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

программное обеспечение может просмотреть мини-дампы.

- Изменение времени в реестре — это ранний метод предотвращения преждевременного TDR, и через некоторое время я верю

MS изменила время с 2 до 8 секунд (по аналогии с тем, что делали пользователи Windows с начала TDR).

Использование более длительного времени не влияет на производительность игры. Все, что он делает, это допускает более длительную задержку обработки перед ошибкой TDR

или BSOD.

- Не рекомендуется использовать время более 8 секунд, если на самом деле есть проблема с графическим процессором.

TDR чаще всего не вызывается графическим процессором или драйверами, но, к сожалению, его трудно изолировать, поскольку TDR должен был предотвратить BSOD.

Ошибки TDR могут быть вызваны чем угодно: программным обеспечением или другим аппаратным компонентом.

Некоторые другие вещи, которые нужно проверить, включают -

- Убедитесь, что BIOS материнской платы обновлен.

Установлены ли настройки BIOS по умолчанию или вы использовали некоторые ручные настройки, в частности, разгон ОЗУ или процессора?

Некоторые примеры программных причин -
- Когда TDR возникает при использовании Интернета, это иногда связано с надстройками браузера или
версией браузера, который вы используете.
- Антивирусное программное обеспечение, в частности антивирусные пакеты, которые запускают ряд программ в фоновом режиме,
являются другой возможностью. Запуск нескольких антивирусных программ в резидентном режиме (всегда включен).
- Возможны вредоносные программы, шпионские программы или вирусы. Запустите полное сканирование во время загрузки с помощью AV.
Одним из примеров является вирус под названием iehighutil.dll, который появляется в качестве дополнительного бонуса при некоторых загрузках через торрент.

– Еще один вариант – системное «оптимизирующее» программное обеспечение.
- Игры часто вызывают TDR. В некоторых случаях это связано с использованием слишком высоких настроек графики.

– Вы что-нибудь устанавливали в то время, когда начались сбои?
- Конфликты с другими драйверами также могут вызывать TDR. Один из таких драйверов поставляется с Daemon Tools.

Возможно, стоит использовать чистую загрузку, чтобы помочь устранить потенциальные проблемы служб или конфликт программ при загрузке
(Обратите внимание, что чистая загрузка не помогает изолировать программы, которые вы можете запустить после загрузки в Widnows.)

TDR означает обнаружение и восстановление тайм-аута. Это функция операционной системы Windows, которая обнаруживает проблемы с откликом видеокарты и восстанавливает работоспособность рабочего стола путем сброса карты. Если операционная система не получает ответа от видеокарты в течение определенного времени (по умолчанию 2 секунды), операционная система перезагружает видеокарту.

До появления TDR подобные проблемы приводили к зависанию системы и требовали перезагрузки операционной системы. Если TDR включен и вы видите сообщение об ошибке TDR «Драйвер дисплея перестал отвечать и был восстановлен», это означает, что операционная система Windows сбросила драйвер дисплея.

Существует три различных возможных конфигурации отладки:

  • Локальная отладка с помощью одного графического процессора,
  • Локальная отладка с несколькими графическими процессорами или
  • Удаленная отладка.

Выберите тот, который наиболее точно соответствует вашей настройке NVIDIA Nsight:

Локальная отладка с помощью одного графического процессора

Отключение TDR удаляет ценный уровень защиты, поэтому обычно рекомендуется оставить его включенным.

Однако установка слишком малой задержки TDR может привести к сбою отладчика по одной из двух причин:

  • Отладка на некоторых графических процессорах завершается ошибкой с задержкой TDR менее 10 секунд.
  • Отладочные сборки ядер CUDA выполняются медленнее, и для их завершения может потребоваться дополнительное время. При слишком малой задержке TDR ядрам может не хватить времени для завершения.

Поэтому, если вы используете локальную отладку с одним GPU, рекомендуется оставить TDR включенным и установить задержку на 10 секунд.

Чтобы включить TDR и изменить задержку, сделайте следующее:

  1. Щелкните правой кнопкой мыши значок Nsight Monitor на панели задач.
  2. Выберите параметры.

Локальная отладка с несколькими графическими процессорами или удаленная отладка

При использовании конфигурации локальной отладки с несколькими графическими процессорами или конфигурации удаленной отладки важно отключить TDR. Это связано с тем, что в большинстве приложений CUDA TDR означает, что любая операция отладки после TDR завершится ошибкой. Вы не сможете выполнять пошаговые действия, устанавливать точки останова, просматривать переменные и т. д. Приложение получит ошибку запуска сетки, а CUcontext начнет сообщать об ошибках.

Включение TDR может помешать отладке графического процессора, поскольку операционная система воспринимает графическую карту как невосприимчивую, когда выполнение целевого приложения приостановлено или когда отладчик выполняет определенные операции.

Чтобы отключить TDR, сделайте следующее:

  1. Щелкните правой кнопкой мыши значок Nsight Monitor на панели задач.
  2. Выберите параметры.

На этой странице описывается обнаружение тайм-аута и восстановление (TDR) для разработчиков драйверов. Дополнительные сведения о реализации см. также в TDR в Windows 8 и более поздних версиях.

Обзор

Одна из наиболее распространенных проблем со стабильностью графики возникает, когда компьютер «зависает» или когда он кажется полностью «зависшим», когда на самом деле он обрабатывает команду или операцию конечного пользователя. Обычно пользователь ждет несколько секунд, а затем решает перезагрузить компьютер. Застывший внешний вид компьютера обычно возникает из-за того, что графический процессор занят обработкой интенсивных графических операций, обычно во время игры, и, следовательно, не обновляет экран дисплея. TDR позволяют операционной системе определить, что пользовательский интерфейс не отвечает.

На рисунке ниже показан процесс TDR.

Операционная система (ОС) пытается обнаружить ситуации, в которых компьютеры "зависают". Затем ОС пытается динамически выйти из зависших ситуаций, чтобы рабочие столы снова реагировали, облегчая ситуацию, когда конечные пользователи без необходимости перезагружают свои системы.

Если ОС обнаруживает шесть (6) или более зависаний графического процессора и последующее восстановление происходит в течение одной (1) минуты, ОС проверяет компьютер на наличие ошибок при следующем зависании графического процессора.

Обнаружение тайм-аута в WDDM

Планировщик графического процессора, являющийся частью подсистемы графического ядра DirectX (Dxgkrnl.sys), обнаруживает, что для выполнения определенной задачи графическому процессору требуется больше разрешенного времени. Затем планировщик графического процессора пытается упредить эту конкретную задачу. Операция вытеснения имеет тайм-аут ожидания, который является фактическим тайм-аутом TDR. Период ожидания по умолчанию в Windows Vista и более поздних операционных системах составляет 2 секунды. Если графический процессор не может завершить или прервать текущую задачу в течение времени ожидания TDR, ОС диагностирует зависание графического процессора.

Чтобы предотвратить обнаружение тайм-аута, поставщики оборудования должны гарантировать, что графические операции (то есть заполнение буфера прямого доступа к памяти (DMA)) занимают не более 2 секунд в сценариях конечного пользователя, таких как производительность и игра.

Подготовка к восстановлению

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

Дополнительные сведения о реализации см. в TDR в Windows 8 и более поздних версиях.

Восстановление рабочего стола

ОС сбрасывает соответствующее состояние графического стека. Диспетчер видеопамяти, который также является частью Dxgkrnl.sys, удаляет все выделения из видеопамяти. Драйвер минипорта дисплея сбрасывает аппаратное состояние графического процессора. Графический стек выполняет последние действия и восстанавливает рабочее состояние рабочего стола.

Единственным видимым артефактом от обнаружения зависания до восстановления является мерцание экрана. Это мерцание возникает, когда ОС сбрасывает некоторые части графического стека, что вызывает перерисовку экрана. Он устранен, если драйвер минипорта дисплея соответствует WDDM 1.2 и более поздним версиям (см. раздел Обеспечение бесшовных переходов между состояниями в WDDM 1.2 и более поздних версиях).

Когда ОС успешно восстановила рабочий стол, она делает следующее:

  • Отображает информационное сообщение для конечного пользователя, в котором говорится: "Драйвер дисплея перестал отвечать и восстановлен".
  • Записывает предыдущее сообщение в приложение просмотра событий и собирает диагностическую информацию в виде отчета об отладке. Если конечный пользователь дал согласие на предоставление отзыва, ОС возвращает этот отчет об отладке в корпорацию Майкрософт с помощью механизма онлайн-анализа сбоев (OCA).

Некоторые устаревшие приложения DirectX могут отображаться черным цветом в конце этого восстановления, что требует от конечного пользователя перезапуска этих приложений. Хорошо написанные приложения DirectX 9Ex и DirectX 10 и более поздних версий, поддерживающие технологию удаления устройств, продолжают работать правильно. Приложение должно освободить, а затем заново создать свое устройство Microsoft Direct3D и все объекты устройства.

В этом разделе представлены стратегии тестирования и отладки TDR для разработчиков драйверов дисплея.

Тесты TDR в WHLK

Набор Windows Hardware Lab Kit (WHLK) содержит специальные тесты TDR, которые разработчики драйверов могут использовать для тестирования и отладки. Например, разработчики могут вручную запускать TDR графического процессора с помощью TDR SimulatePreemption. Дополнительные сведения о различных тестах, связанных с TDR, см. в разделе Device.Graphics.

Ключи реестра TDR для тестирования и отладки

Разработчики могут использовать следующие разделы реестра, связанные с TDR (обнаружение и восстановление тайм-аута), для целей тестирования или отладки только в процессе разработки драйвера.

Эти ключи реестра не должны изменяться конечными пользователями или приложениями за пределами целевого тестирования или отладки во время разработки драйвера.

TdrLevel

Указывает начальный уровень восстановления.

Где TdrLevelXxx может быть одним из следующих значений:

Значение Значение
TdrLevelOff (0) Обнаружение отключено
TdrLevelBugcheck (1) Проверка ошибок при обнаружении времени ожидания; например, без восстановления.
TdrLevelRecoverVGA (2) Восстановление до VGA (не реализовано).
TdrLevelRecover (3) Восстановление по тайм-ауту. Это значение по умолчанию.

TdrDelay

Указывает количество секунд, на которое GPU может задержать вытесняющий запрос от планировщика GPU. Фактически это порог тайм-аута.

TdrDdiDelay

Указывает количество секунд, в течение которых ОС позволяет потокам покидать драйвер. Через указанное время ОС проверяет компьютер на наличие ошибок с кодом VIDEO_TDR_FAILURE (0x116).

Тдрдебугмоде

Определяет поведение процесса TDR, связанное с отладкой. Значение по умолчанию — TDR_DEBUG_MODE_RECOVER_NO_PROMPT, что указывает на то, что не нужно входить в отладчик.

Значение Значение
TDR_DEBUG_MODE_OFF (0) Переход к отладчику ядра перед восстановлением для исследования тайм-аута.
TDR_DEBUG_MODE_IGNORE_TIMEOUT (1) Игнорировать любой тайм-аут.
TDR_DEBUG_MODE_RECOVER_NO_PROMPT (2) Восстановление без взлома отладчика. Это значение по умолчанию.
TDR_DEBUG_MODE_RECOVER_UNCONDITIONAL (3) Восстановление, даже если некоторые условия восстановления не выполняются (например, восстановление при последовательных тайм-аутах).

TdrLimitTime

Указывает время по умолчанию, в течение которого разрешено определенное количество TDR (задается ключом TdrLimitCount) без сбоя компьютера.

TdrLimitCount

Указывает количество TDR по умолчанию (0x117), которые разрешены в течение времени, заданного ключом TdrLimitTime, без сбоя компьютера.

Читайте также: