Ошибка DXGI_ERROR_DEVICE_REMOVED / DXGI_ERROR_DRIVER_INTERNAL_ERROR в HumanitZ (CreateBuffer failed)
Содержание показать/скрыть
Введение: что это за ошибка и когда появляется
Если в HumanitZ игра падает в момент поиска лута и в окне краша видно примерно такое:
-
LowLevelFatalError -
Device->CreateBuffer ... D3D11UniformBuffer.cpp:150 -
DXGI_ERROR_DEVICE_REMOVED/DXGI_ERROR_DRIVER_INTERNAL_ERROR -
Crash in runnable thread RenderThread
это означает, что рендер-поток Unreal Engine (RenderThread) потерял доступ к видеоустройству. На практике так обычно выглядит сбой драйвера видеокарты или “срыв” GPU под нагрузкой: игра пытается создать буфер (CreateBuffer), а DirectX отвечает, что устройство “удалено” (device removed) или драйвер упал внутренней ошибкой.
Важно: это не обязательно “сломанный ПК”. Чаще всего причина в сочетании драйверов, настроек DirectX/Windows, оверлеев, разгона или резкого пика нагрузки (что как раз бывает при переходе в сетевой поиск/лобби).
Причины появления (самые частые)
1) Сбой драйвера видеокарты под пиковой нагрузкой
DXGI_ERROR_DEVICE_REMOVED обычно появляется, когда GPU перестаёт быть доступен приложению: драйвер мог перезапуститься (TDR), обновиться, или система “переключила” графику.
2) Конфликт/баг конкретной версии драйвера
Иногда проблема возникает на одной версии драйвера и исчезает на другой — для Unreal-игр это типичная история.
3) Нестабильность GPU/VRAM (включая “заводской разгон”)
Разгон (даже минимальный) — одна из самых частых причин DXGI-крэшей: под редкой нагрузкой всё нормально, а в конкретной сцене/моменте драйвер “сыпется”.
4) Оверлеи, запись экрана, мониторинги, фоновые программы
Любые оверлеи/хуки в рендер (Steam/Discord/GeForce Overlay, запись, OSD) иногда ломают стабильность UE-рендера, особенно при переключениях режимов/окон.
5) Таймаут TDR в Windows
Windows может решить, что видеодрайвер “слишком долго отвечает”, перезапустить его — и игра получит “device removed”. Добавление TDR-параметров в реестр часто называют одним из самых подтверждаемых способов снизить такие вылеты.
Пошаговые способы решения (от простых к сложным)
Шаг 1. Перезагрузи ПК и закрой всё лишнее перед запуском
Перед тестом закрой:
-
Discord (или хотя бы оверлей)
-
Steam Overlay
-
GeForce Experience / ShadowPlay
-
Xbox Game Bar
-
MSI Afterburner OSD / RivaTuner (сам Afterburner можно оставить без экранного вывода)
-
запись экрана/стрим
Цель простая: убрать всё, что “встраивается” в картинку.
Шаг 2. Ограничь FPS и убери тяжёлые эффекты
Даже если вылет происходит “не в бою”, скачок нагрузки в меню/лобби тоже бывает.
Что сделать:
-
поставь лимит FPS на 60–90 (в игре или в панели NVIDIA/AMD)
-
отключи Motion Blur
-
снизь тени и постобработку хотя бы до средних/низких
Шаг 3. Сними разгон и проверь температуры
Если есть разгон GPU/VRAM — верни всё в сток. Это базовая проверка для DXGI_ERROR_DEVICE_REMOVED.
Если пользуешься MSI Afterburner:
-
сбрось разгон
-
при необходимости попробуй:
-
Power Limit 90–95%
-
Core Clock −50 / −100 MHz (как тест стабильности)
-
Шаг 4. Переустанови или откати драйвер видеокарты
Это один из самых эффективных шагов при DXGI_ERROR_DRIVER_INTERNAL_ERROR.
Как действовать правильно:
-
сделай “чистую установку” драйвера (в установщике NVIDIA это есть)
-
если сейчас стоит самый новый драйвер — попробуй версию на 1–2 релиза старше
-
если проблема появилась после обновления — откат почти всегда логичный первый тест
Шаг 5. Проверь файлы игры
В Steam:
-
Библиотека → HumanitZ
-
Свойства → Установленные файлы
-
Проверить целостность
Это исключит битые/неподхваченные файлы после обновлений.
Шаг 6. Принудительно запусти игру в DX11 (если есть возможность DX12)
Даже если в логе указан D3D11, иногда игра запускается/миксует режимы или включены опции, которые ведут к нестабильности. Для Unreal-игр переключение на DX11 часто используют как быстрый стабилизатор.
В Steam → Параметры запуска:
-dx11
Шаг 7. Увеличь TDR-таймаут Windows (если вылеты остаются)
Этот шаг имеет смысл, если вылет похож на “срыв драйвера” (device removed). Суть — Windows будет чуть дольше ждать отклика GPU. Такой подход часто указывают как подтверждаемое решение для DXGI_ERROR_DEVICE_REMOVED.
Как сделать:
-
Win + R→regedit -
Перейди:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers
-
Создай параметры DWORD (32-bit):
-
TdrDelay=10 -
TdrDdiDelay=10
-
Перезагрузи ПК
Если после этого стало стабильнее — значит, проблема действительно была в “таймауте/перезапуске драйвера” под нагрузкой.
Дополнительные советы (чтобы быстрее найти причину)
-
Проверка на встроенную графику (ноутбуки/ПК с iGPU): убедись, что HumanitZ запускается на дискретной видеокарте, а не на встроенной (переключение адаптера тоже может давать device removed).
-
Тест “чистой среды”: попробуй запустить игру после “чистой загрузки” Windows (без лишних автозапусков). Если вылет исчез — виноват фон/оверлей.
-
Если вылет строго при поиске матча: это часто указывает на момент переключения сцен/рендера. Поэтому особенно важны оверлеи, лимит FPS и драйвер.
-
В обсуждениях UE-сообщества подчёркивают, что device removed-крэши чаще всего упираются в систему/драйвер/железо и их стабильность, а не в “одну кнопку в игре”.
Информация