Исправляем ошибку dxgi_error_device_hung в prepar3d

В этом разделе объясняется, как повторно создать цепочку интерфейса устройства Direct3D и DXGI при удалении или повторной инициализации графического адаптера.

Исправляем ошибку

Если ошибка «dxgi_error_device_removed» появляется только при запуске конкретной игры, тогда, возможно, ее системные требования для вас. В остальных случаях нужно более точно установить проблему.

Начнем с обновления DirectX

Без DirectX можно не рассчитывать на загрузку игры. Попробуйте удалить обновления и переустановить. DirectX всегда прилагается к играм, вот оттуда его и можно взять. Для скачивания последней версии перейдите на тематическую страницу на официальном сайте Microsoft: www.microsoft.com/ru-ru/Download/confirmation.aspx%3Fid%3D35

Загрузите DirectX на официальном сайте Microsoft

Проверяем другие драйвера

Именно с выходом Crysis 3 ошибка с кодом 0x887a0006 получила наибольшее распространение. Системные требования для своего времени не маленькие, что и приводило к проблемам в ОС.

  • Для скидывания настроек в игре к минимальным показателям воспользуйтесь утилитой Crysis 3 Config.
  • Обновите все драйвера на компьютере. Для этого можете скачать все последние версии с официального сайта Microsoft. В качестве запасного варианта перейдите по пути: «Панель управления» – «Центр обновления Windows». Также можно использовать

Возвращаем видеокарту к прежним настройкам

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

Если после таких экспериментов у вас появляется черный экран – верните настройки видеокарты на прежние показатели.

Примечание. Если для ускорения ПК вы используете сторонний софт, то его следует отключить. Для большей надежности удалите софт.

Питание

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

https://youtube.com/watch?v=rWjTWbGw-yg

 

Добавление раздела реестра

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

Откройте Редактор реестра командой regedit из окна Win + R.

Перейдите в следующую локацию на левой панели навигации:

HKEY_LOCAL_MACHINE – SYSTEM – CurrentControlSet – Control – GraphicsDrivers

Щелкните правой кнопкой мыши на раздел GraphicsDrivers и выберите Создать – Параметр DWORD (32 бита).

Присвойте имя новому параметру «TdrLevel», дважды щелкните по нему и установите значение «0». Примените изменения, и перезагрузите компьютер.

Удалим существующий драйвер видекарты.

Я рекомендую использовать для этого утилиту Display Driver Uninstaller больше известную под именем DDU. Крайню версию утилиты можно получить тут. При удалении драйвера РЕКОМЕНДУЕТСЯ делать это в “Безопасном режиме” операционной системы. Как зайти в этот режим рассказывать не надо? Запускаем утилиту, выбираем пункт “Clean and restart”. Этот пункт полностью удаляет драйвера видеоадаптера, а также утилиту GeForce Experience с вашего ПК. После перезагрузки ваша система предстанет перед вами в минимальном разрешении. Кстати, рекомендую до удаления драйвера отключить компьютеру доступ в Сеть.

Установим… Старый драйвер.

Да, вы не ослышались, мы будем устанавливать один из старых выпусков драйверов nVidia. Судя по отзывам пользователей наиболее стабильным является версия 384.76. Для загрузки архивного драйвера идем сюда и скачиваем нужный нам. Еще разок, сделайте это до удаления прошлой версии, ведь у нас же сейчас доступ к интернет отключен.

Запускаем установку. Если установщик вам предложит вариант установки “Только драйвер” и “Драйвер и GeForce Experience”, то лучше выбрать вариант установки только драйвера. Если нет, то используйте кастомную установку в которой отключите установку утилиты GeForce Experience. После установки идем на перезагрузку.

Отключение Nvidia ShadowPlay

Технология Nvidia ShadowPlay предназначена для записи экрана с аппаратным ускорением, которая входит в состав приложения GeForce Experience. Несмотря на свои преимущества утилита создает дополнительную нагрузку на графический процессор, так как он должен постоянно записывать экран, а также предоставлять ресурсы для бесперебойной работы игры. Отключение этой технологии позволяет избавиться от сообщения об ошибке DXGI_ERROR_DEVICE_REMOVED.

Откройте Nvidia GeForce Experience от имени администратора. Перейдите на вкладку «Общие» с помощью панели навигации, расположенной в левой части экрана. В разделе «Внутриигровое наложение» переместите переключатель в положение «Выключено».

Нажмите на кнопку «Применить», чтобы сохранить изменения. Перезапустите систему и посмотрите, решена ли проблема.

ИнструкцияInstructions

Шаг 1.Step 1:

Включите проверку ошибки удаленного устройства в цикле отрисовки.Include a check for the device removed error in the rendering loop. Представьте кадр, вызвав метод IDXGISwapChain::Present (или метод Present1 и т. д.).Present the frame by calling IDXGISwapChain::Present (or Present1, and so on). Затем проверьте, возвращаются ли DXGI_ошибка_устройства_удалено или DXGI_ошибка_устройства _Сбросить.Then, check whether it returned DXGI_ERROR_DEVICE_REMOVED or DXGI_ERROR_DEVICE_RESET.

Прежде всего шаблон сохраняет HRESULT, возвращенный цепочкой буферов DXGI.First, the template stores the HRESULT returned by the DXGI swap chain:

После выполнения всех необходимых действий для представления кадра шаблон проверяет наличие ошибки удаленного устройства.After taking care of all other work for presenting the frame, the template checks for the device removed error. При необходимости он вызывает метод обработки условия удаленного устройства.If necessary, it calls a method to handle the device removed condition:

Шаг 2.Step 2:

Также включите проверку на наличие ошибки удаленного устройства в ответ на изменения размера окна.Also, include a check for the device removed error when responding to window size changes. Это хорошо подходит для проверки DXGI_ошибка_устройства_удалено или DXGI_ошибка_устройства_ Сброс по следующим причинам:This is a good place to check for DXGI_ERROR_DEVICE_REMOVED or DXGI_ERROR_DEVICE_RESET for several reasons:

  • Для изменения размера цепочки буферов требуется вызвать базовый адаптер DXGI, который может возвратить ошибку удаленного устройства.Resizing the swap chain requires a call to the underlying DXGI adapter, which can return the device removed error.
  • Приложение может теперь отображаться на мониторе, подключенном к другому графическому устройству.The app might have moved to a monitor that’s attached to a different graphics device.
  • При удалении или сбросе графического устройства разрешение рабочего стола часто меняется, в результате чего меняется размер окна.When a graphics device is removed or reset, the desktop resolution often changes, resulting in a window size change.

Шаблон проверяет HRESULT, возвращенный методом ResizeBuffers:The template checks the HRESULT returned by ResizeBuffers:

Шаг 3.Step 3:

Любое время, приложение получает DXGI_ошибка_устройства_удалено ошибки, оно должно повторно инициализировать устройство Direct3D и повторно создайте все зависящие от устройства ресурсы.Any time your app receives the DXGI_ERROR_DEVICE_REMOVED error, it must reinitialize the Direct3D device and recreate any device-dependent resources. Освободите все ссылки на ресурсы графического устройства, созданные при использовании предыдущего устройства Direct3D. Эти ресурсы теперь недействительны, и все ссылки на данную цепочку буферов следует освободить до создания новой цепочки.Release any references to graphics device resources created with the previous Direct3D device; those resources are now invalid, and all references to the swap chain must be released before a new one can be created.

Метод HandleDeviceLost освобождает цепочку буферов и сообщает компонентам приложения о необходимости освободить ресурсы устройства.The HandleDeviceLost method releases the swap chain and notifies app components to release device resources:

Затем он создает новую цепочку буферов и выполняет повторную инициализацию зависимых от устройства ресурсов, контролируемых классом управления устройством.Then, it creates a new swap chain and reinitializes the device-dependent resources controlled by the device management class:

После повторной установки устройства и цепочки буферов этот метод сообщает компонентам приложения о необходимости повторной инициализации зависимых от устройства ресурсов.After the device and swap chain have been re-established, it notifies app components to reinitialize device-dependent resources:

Когда метод HandleDeviceLost завершает работу, элемент управления возвращается в цикл отрисовки, и продолжается отрисовка нового кадра.When the HandleDeviceLost method exits, control returns to the rendering loop, which continues on to draw the next frame.

Обновление драйвера видеокарты

Иногда ошибку DXGI_ERROR_DEVICE_REMOVED удается решить путем обновления драйвера видеокарты. Возможно, он неисправен или устарел. Нужно полностью удалить драйвер перед установкой нового, для этого воспользуйтесь утилитой Display Driver Uninstaller (DDU).

После установки DDU загрузите компьютер в безопасном режиме. Запустите приложение, укажите графический процессор и нажмите на кнопку «Удалить и перезапустить». Приложения автоматически удалит установленные драйверы, затем перезапустит ПК.

После загрузки ПК в обычном режиме перейдите на сайт поставщика видеокарты, загрузите и установите последнюю версию драйвера. Либо это можно сделать в разделе «Драйверы» приложения GeForce Experience.

Перезагрузите систему. Проверьте, прерывается ли игра ошибкой DXGI_ERROR_DEVICE_REMOVED.

Исправление ошибки DXGI_ERROR_DEVICE_REMOVED

Для того, чтобы исправить ошибку для начала рекомендую по порядку выполнить следующие действия:

  1. Если вы недавно вынимали (или устанавливали) видеокарту, проверить, что она плотно подключена, контакты на ней не окислены, дополнительное питание подключено.
  2. Если есть возможность, проверить эту же видеокарту на другом компьютере с той же игрой с теми же параметрами графики, чтобы исключить неисправность самой видеокарты.
  3. Попробовать установить другую версию драйверов (в том числе более старую, если недавно произошло обновление до последней версии драйверов), предварительно полностью удалив имеющиеся драйверы: Как удалить драйверы видеокарты NVIDIA или AMD.
  4. Для того, чтобы исключить влияние недавно установленных сторонних программ (иногда они также могут вызывать ошибку), выполните чистую загрузку Windows, а затем проверьте, будет ли проявлять себя ошибка в вашей игре.
  5. Попробуйте выполнить действия, описанные в отдельной инструкции Видеодрайвер перестал отвечать и был остановлен — они могут сработать.
  6. Попробуйте в схеме электропитания (Панель управления — Электропитание) выбрать «Высокая производительность», а затем в «Изменить дополнительные параметры электропитания» в разделе «PCI Express» — «Управление питанием состояния связи» установите «Откл.» 
  7. Попробуйте снизить настройки качества графики в игре.
  8. Скачайте и запустите веб-установщик DirectX, если он найден поврежденные библиотеки, они будут автоматически заменены, см. Как скачать DirectX.

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

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделитесь с друзьями:
Технарь
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.