DXGI_ERROR_DEVICE_REMOVED: причины, решения и полное техническое руководство

Последнее обновление: 17.12.2023

  • Ошибка указывает на потерю графического процессора или перезагрузку; требуется пересборка устройства и ресурсов.
  • Обычно ее вызывают тени, наложения, агрессивный AA, DSR и нестабильные драйверы.
  • Настройки TDR (TdrDelay/TdrDdiDelay или TdrLevel), более чистые драйверы, улучшенная стабильность.
  • В D3D11 необходимо перехватить ошибку после Present/ResizeBuffers и обработать HandleDeviceLost.
DXGI_ERROR_DEVICE_REMOVED

Если вы играете на ПК, то, скорее всего, рано или поздно вы столкнетесь с этим сообщением. DXGI_ERROR_DEVICE_REMOVEDЭта ошибка появляется, казалось бы, случайным образом, вызывая вылет игры на рабочий стол и оставляя вас с каменным лицом посреди игры. Хотя это может показаться неприятным, существует несколько известных причин и несколько решений, которые вы можете попробовать уже сегодня.

В этом руководстве я подробно и без излишеств объясняю, что означает эта ошибка, почему она возникает и как ее решать с разных сторон: Системные настройки, драйверы, реестр Windows, конфигурация игры и, для тех, кто программирует с помощью Direct3D 11, надежный управляющий код. для воссоздания устройства. Вы также увидите примеры реальных игровых ситуаций, рекомендации по диагностике и важные предупреждения, которые помогут избежать ошибок.

Что такое DXGI_ERROR_DEVICE_REMOVED и почему оно возникает?

Ошибка DXGI_ERROR_DEVICE_REMOVED Указывает, что графический процессор больше не доступен приложению, либо потому, что система перезапустила его (TDR), либо потому, что драйвер был обновлен, либо потому, что компьютер переключение с интегрированной на дискретную графику или буквально, устройство было отключено. В Direct3D 11 старое состояние «устройство потеряно» D3D9 больше не существует, но доступность адаптера может еще измениться и устройство должно быть создано заново.

Наиболее распространенные сценарии: Сброс графического процессора из-за сбоя драйвера, горячих обновлений драйверов, переключения активных графических процессоров на ноутбуках, тайм-аутов из-за больших нагрузок или проблемы со стабильностью из-за разгона/перегрева. Даже такое простое действие, как переключение мониторов или изменение размера окна, может выявить проблему с удалённым устройством.

DXGI_ERROR_DEVICE_REMOVED

Типичные симптомы и сообщения, которые вы увидите

Обычное проявление — вылет на рабочий стол с диалоговым окном игрового движка, подобным этому: Фатальная ошибка – Ошибка двигателя и строка «: 0x887A0005». В некоторых играх это предупреждение скрыто в полноэкранном режиме; переведите игру в режим оконный режим Может помочь визуализировать это. Нередко в окне просмотра событий отображаются общие сообщения, например: «Фильтр файловой системы 'EasyAntiCheat_EOSSys' (…) успешно выгружен» которые не являются корнем проблемы.

Другим распространенным симптомом является то, что после 1–4 часов интенсивной сессии игра закрывается без дальнейших происшествий, а когда вы снова ее открываете, в диспетчере устройств все выглядит нормально и в журналах драйверов, без явных критических ошибок. В некоторых случаях они также появляются Нарушение доступа к исключению, который следует рассматривать как отдельный вопрос от DXGI.

Распространенные причины, которые следует учитывать

Хотя список неполный, вот наиболее повторяемые: нестабильные или несовместимые драйверы, разгон GPU/VRAM/CPU, высокие температуры, функции фоновой записи/шейдинга, агрессивные графические настройки (AA, DSR, 4K@165 Гц), планирование игр (множество команд, которые приводят к сбою драйвера) А на ноутбуках — активная смена адаптера. Сочетание нескольких факторов часто приводит к таймаут или «зависание» контроллера.

Эксклюзивный контент – нажмите здесь  RTX 5090 ARC Raiders: это новая тематическая видеокарта, которую NVIDIA раздаёт в рамках продвижения DLSS 4 на ПК.

Система также влияет на: характеристику Аппаратно-ускоренное планирование графического процессора (HAGS) Иногда это ухудшает стабильность, поэтому отключение этой функции — хороший первый шаг. И будьте осторожны: фоновое обновление драйверов может вызвать эту ошибку, даже если вы этого не заметите. сразу после перезагрузки или выхода из спящего режима.

GeForce Experience не может найти ваши игры

Быстрые решения, которые стоит попробовать в первую очередь

Прежде чем начать что-то серьёзное, отбросьте свои суеверия и сосредоточьтесь на основах и мерах безопасности. Некоторые простые меры, такие как Отключить внутриигровой оверлей (GeForce Experience ShadowPlay/In-Game Overlay), ограничение FPS или понижение графического профиля на один пункт дают удивительные результаты:

  • Отключить In-Game Overlay de GeForce Experience: Откройте GeForce Experience от имени администратора, перейдите в раздел «Основные» и отключите «Внутриигровой оверлей/общий доступ».
  • Попробуйте поиграть на оконный или безрамочный режим для просмотра сообщения об ошибке и уменьшения изменений режима экрана.
  • Временно уменьшает разрешение, частота обновления и устранение DSR если вы принудительно устанавливаете разрешение 3840×2160 на мониторе 1080p, так как это создает нагрузку на конвейер.
  • Отключить HAGS: Параметры Windows > Система > Дисплей > Графика > Параметры графики по умолчанию > Аппаратно-ускоренное программирование GPU на Выкл.

Если ситуация стабилизируется, вы знаете, куда она идет; если нет, пора засучить рукава и продолжайте читать следующие разделы.

Настройки реестра TDR: два безопасных подхода (с осторожностью)

Windows интегрирует механизм, называемый TDR (обнаружение и восстановление тайм-аута) который перезапускает графический процессор, если он слишком долго отвечает. Мы можем настроить его тайминги для работы с большими нагрузками. Сообщество и технические руководства сообщают о двух подходах: увеличение таймингов с помощью TdrDelay и TdrDdiDelayили отрегулировать TdrLevelВажно: работа с реестром сопряжена с риском; перед внесением каких-либо изменений сделайте его копию.

Важное предупреждение: Если вы не понимаете, что делаете, не продолжайте.Ошибочное изменение реестра может привести к сбою Windows. Скопируйте эту команду в командную строку от имени администратора, прежде чем продолжить:

reg export "HKLM\SYSTEM\CurrentControlSet\Control\GraphicsDrivers" "%USERPROFILE%\Desktop\GraphicsDrivers.reg" /y

Метод 1: Увеличение времени с помощью TdrDelay и TdrDdiDelay

Хитрость, которая спасла целые сеансы для более чем одного человека, заключается в добавлении двух значений DWORD (32-бит) в HKLM\SYSTEM\CurrentControlSet\Control\GraphicsDrivers с шестнадцатеричным значением 3c (60)Этот метод позволил людям, которые раньше выходили из игры через 3-4 минуты, играть часами, хотя это не решает другие сбои, такие как «Нарушение исключений доступа».

  1. Откройте меню «Пуск», введите реестр и войдите в редактор реестра.
  2. Вставьте в адресную строку: Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers.
  3. На правой панели щелкните правой кнопкой мыши > Создать > Значение типа DWORD (32-битное)., назови это TdrDdiDelay.
  4. Откройте его, отметьте шестнадцатеричную систему счисления и введите 3c как Value data (эквивалентно 60 секундам).
  5. Повторите создание TdrDelay с тем же значением 3c.
  6. Проверьте наличие обоих и перезагрузите компьютер, чтобы изменения вступили в силу.
Эксклюзивный контент – нажмите здесь  Компания Dell готовится к резкому повышению цен из-за увеличения объёма оперативной памяти и повального увлечения искусственным интеллектом.

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

Метод 2: настройка TdrLevel

Другое руководство предлагает создать параметр DWORD TdrLevel Значение 0 в том же разделе реестра изменит поведение TDR. Процесс аналогичен, но с одним значением:

  1. En Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers, щелкните правой кнопкой мыши > Создать > Слово типа DWORD (32 бита).
  2. Дайте ему имя TdrLevel и устанавливает значение 0.
  3. сохранить и перезапуск Окна.

Применяйте только один из подходов одновременно и проверяйте. Если что-то пойдёт не так, вернитесь к предыдущему состоянию, восстановив резервную копию. Записывать что вы сделали в начале.

Настройки NVIDIA: ShadowPlay и сглаживание

Фоновый захват/наложение могут мешать. Помимо наложения, есть ещё один интересный переключатель: отключить глобальное сглаживание из панели управления NVIDIA. Визуально это неидеально, но эффективно для проверки стабильности.

  • Панель управления NVIDIA > Управление настройками 3D > Глобальная конфигурация.
  • Отключить все параметры Anti-Aliasing (Выкл.) и применить.
  • Проверьте, перестала ли игра бросать DXGI после нескольких игр подряд.

Если это поможет, вы можете восстановить AA в режиме «Управляемый приложением» или использовать умеренное качествои объединить его с ограничением FPS для стабилизации трубопровода.

DDU

Драйверы: Полностью переустановите или откатите назад.

Большинство проблем решается чистой переустановкой драйвера видеокарты. Самый надёжный способ — использовать DDU (Display Driver Uninstaller) В безопасном режиме удалите остатки и установите рекомендуемый драйвер. Если вы уже пробовали это, но безуспешно, вот полезный шаг: вернуться к предыдущему драйверу из диспетчера устройств. Если вы используете AMD, см. Проблемы с AMD Adrenalin которые могут помешать во время установки.

  • Диспетчер устройств > Видеоадаптеры > ваш графический процессор > Свойства > вкладка Драйвер.
  • Использовать Откатить назад si está activo.
  • Если нет, попробуйте «Обновить драйвер» > Автоматический поиск драйверов или вручную установите более новую версию. известен своей стабильностью.

После любого изменения драйвера перезагрузите компьютер и проверьте. Избегайте обновления драйвера непосредственно перед длительным сеансом.; лучше провести краткий тест и убедиться, что не появляется ни DXGI, ни «Устройство зависло».

Настройки игры и системы, которые имеют значение

Помимо драйверов и реестра, важно правильно настроить игру и систему. Сочетание 4K, 165 Гц и DSR на мониторе Full HD — это классика. прерывистая нестабильность. Снижает разрешение до родного монитора, ограничивает FPS и снижает скачки нагрузки на графический процессор.

  • Использовать родное разрешение монитора (например, 1920×1080, если ваша панель 1080p) и отключите DSR.
  • Ограничьте FPS в игре или с помощью драйвера (например, 144 или 120), чтобы избежать скачков. Пики на частоте 165 Гц может привести к переполнению очереди команд.
  • Попробуйте использовать правильно настроенную V-Sync или G-Sync/Freesync; избегайте частой смены режима экрана.
  • Если вы разгоняете GPU/VRAM/CPU, перейдите к частоты акций или даже небольшое понижение напряжения.
Эксклюзивный контент – нажмите здесь  Термопаста Arctic MX-7: это новый эталон в линейке MX.

В некоторых играх запуск в окне позволяет увидеть предупреждение DXGI при потере полноэкранного режима. Например, если запущен проигрыватель «r5apex_dx12.exe» с аргументами -steam +fps_max unlimited -game R2 и только в окне он мог прочитать ошибку; небольшие изменения в режиме иметь значение в воспроизведении неудачи.

Контрольный список рекомендуемых практик для минимизации DXGI

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

  • Удалите оверлей/ShadowPlay и все средства записи в реальном времени; отключите HAGS.
  • Используйте родное разрешение, ограничение FPS и умеренное сглаживание или отключите его с панели NVIDIA.
  • Проверьте температуру, отключите OC и избегайте длительных пиковых нагрузок на частоте 165 Гц, если в этом нет крайней необходимости.
  • Переустановите драйвер с помощью DDU; если не получится, попробуйте предыдущий стабильный драйвер и подтвердить.
  • Только если проблема сохраняется, примените одно из следующих средств: Настройки TDR из Реестра и оценивается в течение нескольких часов.
  • Если вы разрабатываете, реализуете маршрут HandleDeviceLost, GetDeviceRemovedReason и попробуйте с dxcap -forcetdr.

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

Когда следует эскалировать проблему

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

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

Учитывая все вышесказанное, у вас есть полный спектр причин и решений для борьбы с DXGI_ERROR_DEVICE_REMOVED: от отключения оверлеев и снижения пиковых нагрузок до переустановки или отката драйверов, интеллектуальной настройки TDR в реестре и, если вы программист, реализации пересоздания устройств и логики диагностики с помощью GetDeviceRemovedReason и dxcap. Волшебной пули нет, но есть упорядоченный путь для восстановить длительные сеансы и восстановите стабильность своей игры, не допуская ошибок.

Сообщение о потере устройства в Unreal Engine
Статья по теме:
Объяснение сообщения о потере устройства в Unreal Engine: реальные причины и решения