Система TDR (Timeout Detection and Recovery) в современных операционных системах работает следующим образом: 1
- Когда графический процессор (GPU) занимает больше разрешённого времени для обработки запроса, планировщик GPU обнаруживает аномалию. 1 Затем он пытается вытеснять эту конкретную задачу. 2 Время ожидания по умолчанию в операционных системах Windows Vista и более поздних версий составляет 2 секунды. 2
- Если GPU не может завершить или вытеснять текущую задачу в течение времени ожидания TDR, операционная система диагностирует, что GPU заморожен. 2
- Планировщик GPU вызывает функцию DxgkDdiResetFromTimeout драйвера мини-порта дисплея, чтобы сообщить драйверу о том, что ОС обнаружила время ожидания. 2 Затем драйвер должен повторно инициализировать себя и сбросить GPU. 2 Кроме того, драйвер прекращает доступ к памяти и не должен обращаться к оборудованию. 2
- Затем операционная система выполняет ряд других шагов восстановления, необходимых для того, чтобы система снова стала реагировать. 1
Если операция прошла успешно, пользователь может увидеть некоторые визуальные артефакты и на экране появится сообщение с описанием произошедшего («Драйвер дисплея перестал отвечать и восстановлен»). 1 В противном случае может появиться «Синий экран смерти» (BSOD). 1