Причины зависания видеодрайвера и их устранение
1. Перегревание
Если проблема появляется только во время игры в компьютерные игры или в других требовательных к видеокарте приложениях, вполне вероятно, что причиной является ее перегрев. Чтобы это проверить, необходимо: • на сайте производителя видеокарты узнать максимально допустимую температуру ее работы (у каждой модели она разная); • на компьютере установить какой-нибудь синтетический тест, создающий нагрузку на видеокарту и отслеживающий ее температуру в режиме реального времени, например, программу FurMark; • запустить тест, нажав кнопку "Burn-in-test" в окне FurMark, и в течение 20-30 минут понаблюдать за температурой видеокарты. Если допустимый максимум будет превышен, нужно позаботиться об улучшении ее охлаждения.
2. Недостаточное питание
Зависание видеокарты может возникать при недостаточном ее электропитании. Необходимо убедиться, что блок питания компьютера удовлетворяет требования всех его устройств. Важно, чтобы он давал достаточную силу тока по линии +12В. Подробнее о том, как оценить соответствие блока питания требованиям компьютера, читайте здесь. Даже если блок питания имеет достаточную мощность, для решения проблемы иногда необходимо поднять напряжения питания видеокарты немного выше стандартного уровня. Особенно, если видеокарта разогнана пользователем или имеет "заводской" разгон. Поднять напряжение можно при помощи специальных утилит. Например, для видеокарт GeForce удобно использовать программу NVidia Inspektor. Аналогичные программы существуют также и для видеокарт Radeon (не сложно найти в Интернете). Порядок действий: • в окне NVidia Inspektor нажать кнопку "Show Overclocking"; • в открывшейся дополнительной панели сдвинуть на 1-2 шага вправо ползунок "Voltage"; • чтобы изменения вступили в силу, нажать кнопку "Apply Clock&Voltage".
3. Чрезмерный разгон
Если видеокарта компьютера разогнана, перегрева нет, и увеличение напряжения ее питания проблему не устраняет, можно попробовать убрать разгон или хотя бы уменьшить его степень. Вполне вероятно, что вылеты драйвера после этого прекратятся. Даже если видеокарту Вы не разгоняли, проблема может исчезнуть после снижения частоты ее графического ядра и/или памяти ниже стандартного уровня. В первую очередь это касается моделей с "заводским" разгоном. Такие видеокарты обычно имеют в своем названии обозначение overclocked, TI и др. Снизить частоту видеокарты можно при помощи специальных утилит. Для видеокарт GeForce подойдет упомянутая в предыдущем пункте программа NVidia Inspektor. Аналогичные программы для видеокарт Radeon не сложно найти в Интернете. Если после снижения частот проблема с зависанием видеодрайвера исчезла, можно перепрошить BIOS видеокарты на обычную версию (со стандартными для этой модели частотами). Перепрошивка BIOS даст возможность работать с видеокартой в обычном порядке, не прибегая больше к использованию указанных выше утилит. Ее быстродействие, конечно же, немного снизится, зато это позитивно скажется на ее надежности и удобстве пользователя. Изменять частоту ниже референсных показателей бояться не следует. На практике, снижение частоты на 1-2% уже может оказать ощутимое позитивное влияние на стабильность работы видеокарты. А на производительности это почти никак не скажется.
4. Ошибки драйвера или другого ПО
Часто причиной зависания видеодрайвера бывают ошибки в его работе. Компании NVidia и AMD, которые их разрабатывают, признают наличие проблемы и постоянно пытаются ее устранить. В одной версии драйверов им это удается лучше, в другой - хуже. Кто знает, может версия видеодрайвера, используемая компьютером в данный момент, плохо оптимизирована для Вашей видеокарты. Обновите драйвер до последней доступной версии, предварительно полностью удалив драйвер старый. Если модель видеокарты компьютера не новая и проблема с вылетами появилась после обновления драйвера, возможно, что все наоборот, и новый драйвер для нее подходит хуже предыдущего. Попробуйте откатить драйвер до прежнего состояния. Причиной вылетов драйвера в видеоиграх также могут быть ошибки в DirectX. Обновите библиотеки DirectX до последней версии. Это удобно делать при помощи утилиты для онлайн обновления, доступной на официальном сайте Microsoft.
5. Конфликт настроек драйвера и приложений
Причиной зависания видеодрайвера может быть несовместимость его настроек с нормальной работой некоторых приложений, в частности, компьютерных игр. В первую очередь это касается 3D параметров анизотропной фильтрации и сглаживания (antialiasing). Так, если в панели управления NVIDIA или ATI/AMD (ищите их в панели управления Windows в разделе "Оборудование и звук") сглаживание принудительно отключено, а настройки какой-то игры предполагают его использование, может возникнуть конфликт, который закончится вылетом драйвера. Поэтому в панели управления видеокартой лучше всего сбросить все настройки до параметров по умолчанию. Для этого там даже есть специальная кнопка.
6. Неподходящие настройки TDR
Вначале этой статьи уже говорилось о том, что во всех версиях Windows, начиная с Windows Vista, есть так называемый механизм TDR (Timeout Detection and Recovery), который принудительно перезапускает видеодрайвер, когда тот не отвечает на запросы системы в течение какого-то времени (несколько секунд). Если перечисленные в предыдущих пунктах действия не помогли решить проблему и TDR продолжает периодически срабатывать, можно попробовать увеличить задержку, отведенную драйверу для ответа на запрос системы, или же отключить TDR вообще. С этой целью нужно внести соответствующие изменения в системный реестр Windows. Чтобы увеличить задержку срабатывания TDR: • открыть редактор реестра. Напомню, что для этого на клавиатуре необходимо нажать комбинацию клавиш Win+R, в появившемся окне напечатать или скопировать туда с этой страницы команду regedit , после чего нажать клавишу Enter.
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers; • выделив раздел "GraphicsDrivers" в левой части редактора, в его правой части найти параметр с названием "TdrDelay". Если такого параметра там нет, его необходимо создать. Напомню, что с этой целью нужно в левой части редактора щелкнуть правой кнопкой мышки по разделу "GraphicsDrivers", в появившемся контекстном меню выбрать "Создать" ⇒ "Параметр DWORD" (32 бита) и переименовать новосозданный параметр на "TdrDelay". • дважды щелкнуть по параметру "TdrDelay" левой кнопкой мышки. Откроется окно, в котором нужно выбрать десятичную систему счисления, в поле "Значение" указать задержку срабатывания TDR (в секундах), нажать кнопку "ОК", после чего закрыть все окна и перезагрузить компьютер.
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers; • выделив в левой части редактора раздел "GraphicsDrivers", посмотреть, есть ли в нем параметр с названием "TdrLevel" (содержание выделенного раздела отображается в правой части редактора). Если его там нет, его необходимо создать. Щелкаем правой кнопкой мышки по разделу "GraphicsDrivers", в появившемся меню выбираем "Создать" ⇒ "Параметр DWORD" (32 бита) и переименовываем новый параметр на "TdrLevel". • дважды щелкнуть левой кнопкой мышки по параметру "TdrLevel", в открывшемся окне в поле "Значение" поставить 0 и нажать кнопку "ОК". Затем закрыть все окна и перезагрузить компьютер.