DXGI_ERROR_DEVICE_REMOVED: Przyczyny, rozwiązania i kompletny przewodnik techniczny

Ostatnia aktualizacja: 20.09.2023

  • Błąd wskazuje na awarię lub ponowne uruchomienie procesora GPU; konieczne jest odbudowanie urządzenia i zasobów.
  • Najczęściej powodują to cienie, nakładki, agresywne AA, DSR i niestabilne sterowniki.
  • Usprawnienia TDR (TdrDelay/TdrDdiDelay lub TdrLevel), czystsze sterowniki, zwiększona stabilność.
  • W D3D11 należy wychwycić błąd po Present/ResizeBuffers i obsłużyć HandleDeviceLost.
DXGI_ERROR_DEVICE_REMOVED

Jeśli grasz na komputerze, prędzej czy później zapewne natkniesz się na ten komunikat. DXGI_ERROR_DEVICE_REMOVEDPojawia się pozornie losowo, powoduje zawieszenie gry i powrót do pulpitu, a w trakcie rozgrywki pozostajesz z kamienną twarzą. Choć może to wydawać się frustrujące, istnieje kilka znanych przyczyn i kilka rozwiązań, które możesz wypróbować już dziś.

W tym przewodniku szczegółowo i bez zbędnych ozdobników wyjaśniam, co oznacza ten błąd, dlaczego występuje i jak sobie z nim radzić z różnych punktów widzenia: Ustawienia systemowe, sterowniki, rejestr systemu Windows, konfiguracja gier, a dla programistów korzystających z Direct3D 11 — solidny kod sterujący. do odtworzenia urządzenia. Zobaczysz również przypadki rzeczywistych graczy, wskazówki diagnostyczne i ważne ostrzeżenia, aby uniknąć bałaganu.

Czym jest błąd DXGI_ERROR_DEVICE_REMOVED i dlaczego występuje?

Błąd DXGI_ERROR_DEVICE_REMOVED Oznacza, że ​​procesor graficzny nie jest już dostępny dla aplikacji, ponieważ system go ponownie uruchomił (TDR), zaktualizowano sterownik lub komputer przejście z grafiki zintegrowanej na dedykowaną lub dosłownie, urządzenie zostało odłączone. W Direct3D 11 stary stan „utracone urządzenie” D3D9 już nie istnieje, ale dostępność adaptera może się jeszcze zmienić i urządzenie musi zostać utworzone ponownie.

Do najczęstszych scenariuszy należą: Resetowanie GPU z powodu awarii sterownika, aktualizacji sterowników na gorąco, przełączania aktywnych GPU w laptopach, przekroczenia limitu czasu z powodu dużych obciążeń lub problemy ze stabilnością spowodowane podkręcaniem/temperaturami. Nawet tak prosta czynność, jak zmiana monitora lub zmiana rozmiaru okna, może ujawnić problem z usuniętym urządzeniem.

DXGI_ERROR_DEVICE_REMOVED

Typowe objawy i komunikaty, które zobaczysz

Zwykle objawia się to zawieszeniem gry i wyświetleniem okna dialogowego silnika gry, takiego jak to: Błąd krytyczny – błąd silnika i ciąg „: 0x887A0005”. W niektórych grach to ostrzeżenie jest ukryte w trybie pełnoekranowym; włącz grę tryb okienkowy może pomóc to zwizualizować. Nierzadko zdarza się, że Podgląd zdarzeń wyświetla ogólne komunikaty, takie jak „Filtr systemu plików „EasyAntiCheat_EOSSys” (…) został pomyślnie rozładowany” które nie są źródłem problemu.

Innym częstym objawem jest to, że po 1–4 godzinach intensywnej sesji gra zamyka się bez dalszych ceregieli, a po jej ponownym otwarciu wszystko wygląda normalnie w Menedżerze urządzeń i w dziennikach sterowników, bez oczywistych błędów krytycznych. W niektórych przypadkach pojawiają się również Naruszenie dostępu do wyjątku, co należy traktować jako odrębne zagadnienie od DXGI.

Typowe przyczyny do rozważenia

Choć lista nie jest kompletna, to oto najczęściej powtarzające się: niestabilne lub niekompatybilne sterowniki, podkręcanie GPU/VRAM/CPU, wysokie temperatury, funkcje nagrywania/cieniowania w tle, agresywne ustawienia grafiki (AA, DSR, 4K@165 Hz), harmonogram gry (wiele poleceń powodujących awarię sterownika) a w laptopach, aktywne adaptery ulegają zmianom. Połączenie kilku czynników często powoduje przekroczenie limitu czasu lub „zawieszenia się” kontrolera.

Ekskluzywna zawartość — kliknij tutaj  MediaTek Kompanio 540 dla Chromebooków: wydajność, 4K i całkowita cisza

Na system wpływa również: charakterystyka Harmonogramowanie GPU przyspieszane sprzętowo (HAGS) Czasami pogarsza stabilność, więc wyłączenie go to dobry pierwszy krok. Uważaj, aktualizacja sterownika w tle może spowodować ten błąd, nawet jeśli nie zdajesz sobie z tego sprawy. zaraz po ponownym uruchomieniu lub wyjściu z trybu uśpienia.

GeForce Experience nie może znaleźć Twoich gier

Szybkie rozwiązania do wypróbowania w pierwszej kolejności

Zanim zaczniesz robić coś poważnego, odrzuć przesądy i skup się na podstawach i środkach bezpieczeństwa. Kilka prostych środków, takich jak: Wyłącz nakładkę w grze (GeForce Experience ShadowPlay/In-Game Overlay)ograniczenie FPS lub obniżenie profilu graficznego o jeden punkt daje zaskakujące rezultaty:

  • Dezaktywuj Nakładka w grze de GeForce Experience:Otwórz GeForce Experience jako administrator, przejdź do zakładki Ogólne i wyłącz opcję „Nakładka/Udostępnianie w grze”.
  • Spróbuj zagrać na tryb okienkowy lub bezramkowy aby wyświetlić komunikat o błędzie i ograniczyć zmiany trybu ekranu.
  • Tymczasowo zmniejsza rozdzielczość, częstotliwość odświeżania i eliminuje DSR jeśli wymuszasz rozdzielczość 3840×2160 na monitorze 1080p, ponieważ obciąża to potok.
  • Wyłącz HAGS: Ustawienia systemu Windows > System > Wyświetlacz > Grafika > Domyślne ustawienia grafiki > Programowanie GPU z przyspieszeniem sprzętowym do Wyłącz.

Jeśli ustabilizuje się w ten sposób, wiesz, dokąd to zmierza; jeśli nie, czas zakasać rękawy i kontynuuj w kolejnych sekcjach.

Zmiany w rejestrze TDR: dwa bezpieczne podejścia (z zachowaniem ostrożności)

W systemie Windows zintegrowany jest mechanizm o nazwie TDR (wykrywanie i odzyskiwanie przekroczenia limitu czasu) który restartuje GPU, jeśli jego reakcja zajmuje zbyt dużo czasu. Możemy dostosować jego taktowanie, aby umożliwić obsługę dużych obciążeń. Społeczność i poradniki techniczne zgłaszają dwa podejścia: zwiększenie taktowania za pomocą TdrDelay i TdrDdiDelaylub dostosuj Poziom TdrWażne: Zmiana rejestru niesie ze sobą ryzyko, dlatego przed wprowadzeniem jakichkolwiek zmian należy wykonać jego kopię.

Ważne ostrzeżenie: Jeśli nie masz pewności co do tego, co robisz, nie kontynuuj.Błędna zmiana w rejestrze może spowodować awarię systemu Windows. Przed kontynuowaniem skopiuj to polecenie do wiersza poleceń jako administrator:

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

Metoda 1: Wydłużanie czasów za pomocą TdrDelay i TdrDdiDelay

Sztuczka, która pozwala zapisać całe sesje dla więcej niż jednej osoby, polega na dodaniu dwóch wartości DWORD (32-bitowych) pod HKLM\SYSTEM\CurrentControlSet\Control\GraphicsDrivers z wartością szesnastkową 3c (60)Dzięki tej metodzie osoby, które wcześniej przestawały grać po 3-4 minutach, mogą teraz grać godzinami, chociaż nie rozwiązuje to innych problemów z awariami, takich jak „Exception Access Violation”.

  1. Otwórz menu Start i wpisz regedit i przejdź do Edytora rejestru.
  2. Wklej w pasek adresu: Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers.
  3. W prawym panelu kliknij prawym przyciskiem myszy > Nowy > Wartość DWORD (32-bitowa), Nazwij to TdrDdiDelay.
  4. Otwórz go, zaznacz bazę szesnastkową i wpisz 3c Jak Dane wartości (równowartość 60 sekund).
  5. Powtórz tworzenie TdrDelay o tej samej wartości 3c.
  6. Sprawdź, czy oba pliki istnieją i uruchom ponownie komputer, aby zastosować zmiany.
Ekskluzywna zawartość — kliknij tutaj  Poradnik zakupu zasilacza: rzeczywista moc, wydajność i niezbędne zabezpieczenia

Chodzi o to, aby system Windows czekał dłużej przed wyłączeniem GPU. Przy bardzo wymagających obciążeniach ta dodatkowa minuta może zapobiec automatyczne resetowanie i usuwanie z gryJeśli nie zauważysz żadnej poprawy, cofnij zmianę lub wypróbuj następującą metodę.

Metoda 2: Dostosuj TdrLevel

Inny przewodnik proponuje utworzenie wartości DWORD Poziom Tdr na 0 w tej samej ścieżce rejestru, aby zmodyfikować działanie TDR. Proces jest podobny, ale z jedną wartością:

  1. En Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers, kliknij prawym przyciskiem myszy > Nowy > DWORD (32 bity).
  2. Nadaj temu nazwę TdrLevel i ustawia wartość na 0.
  3. zapisać i ponownie uruchomić Okna.

Zastosuj tylko jedno z podejść na raz i przetestuj. Jeśli coś pójdzie nie tak, przywróć poprzedni stan, przywracając kopię zapasową. Nagrywać co zrobiłeś na początku.

Ustawienia NVIDIA: ShadowPlay i wygładzanie krawędzi

Przechwytywanie/nakładanie tła może zakłócać działanie. Oprócz nakładania tła istnieje jeszcze jeden ciekawy przełącznik: wyłącz globalne wygładzanie krawędzi z Panelu sterowania NVIDIA. Nie jest to idealne narzędzie pod względem wizualnym, ale sprawdza się jako test stabilności.

  • Panel sterowania NVIDIA > Zarządzaj ustawieniami 3D > Konfiguracja globalna.
  • Wyłącz wszystkie opcje Antyaliasing (Wyłącz) i zastosuj.
  • Sprawdź, czy gra przestała rzucać DXGI po kilku meczach z rzędu.

Jeśli to rozwiąże problem, możesz przywrócić AA w trybie „Kontrolowanym przez aplikację” lub użyć umiarkowanej jakościi połącz go z limitem FPS, aby ustabilizować potok.

DDU

Sterowniki: Zainstaluj ponownie lub przywróć poprzednią wersję

Większość przypadków rozwiązuje się poprzez czystą reinstalację sterownika GPU. Najbardziej niezawodną metodą jest użycie DDU (dezinstalator sterownika ekranu) W trybie awaryjnym usuń resztki, a następnie zainstaluj zalecany sterownik. Jeśli już próbowałeś/aś tego bezskutecznie, przydatnym krokiem jest… powrót do poprzedniego sterownika z Menedżera urządzeń. Jeśli używasz AMD, zobacz Problemy z adrenaliną AMD które mogą zakłócić instalację.

  • Menedżer urządzeń > Karty graficzne > Twój procesor graficzny > Właściwości > karta Sterownik.
  • Używać Cofnij jeśli jest aktywny.
  • Jeśli nie, spróbuj wybrać opcję „Aktualizuj sterownik” > Wyszukaj automatycznie sterowniki lub ręcznie zainstaluj nowszą wersję. znany ze swojej stabilności.

Po każdej zmianie sterownika należy ponownie uruchomić komputer i sprawdzić. Unikaj aktualizacji sterownika tuż przed długą sesją; lepiej przeprowadzić krótki test i sprawdzić, czy nie pojawia się ani DXGI ani komunikat „Device Hung”.

Ustawienia gry i systemu, które robią różnicę

Oprócz sterowników i rejestru, kluczowe jest prawidłowe ustawienie gry i systemu. Połączenie rozdzielczości 4K, 165 Hz i DSR na monitorze Full HD to klasyka. okresowa niestabilność. Zmniejsza rozdzielczość do natywnej rozdzielczości monitora, ogranicza liczbę klatek na sekundę (FPS) i redukuje skoki obciążenia procesora graficznego.

  • Używać natywna rozdzielczość monitora (np. 1920×1080, jeśli twój panel ma rozdzielczość 1080p) i wyłącz DSR.
  • Ogranicz liczbę klatek na sekundę (FPS) w grze lub za pomocą sterownika (np. 144 lub 120), aby uniknąć skoków liczby klatek na sekundę. Szczyty przy 165 Hz może przeciążyć kolejkę poleceń.
  • Spróbuj użyć prawidłowo skonfigurowanej funkcji V-Sync lub G-Sync/Freesync; unikaj częstych zmian trybu ekranu.
  • Jeśli chcesz podkręcić GPU/VRAM/CPU, przejdź do częstotliwości zapasów lub nawet niewielkiego podnapięcia.
Ekskluzywna zawartość — kliknij tutaj  Jakiego zasilacza potrzebujesz do karty graficznej RTX 5090?

W niektórych tytułach uruchomienie w oknie pozwala zobaczyć alert DXGI w przypadku utraty pełnego ekranu. Na przykład, gdy gracz uruchomi «r5apex_dx12.exe» z argumentami -steam +fps_max unlimited -game R2 i tylko w oknie mógł odczytać błąd; małe zmiany w trybie zrobić różnicę w odtworzeniu awarii.

Lista kontrolna dobrych praktyk minimalizujących DXGI

Przyjrzyjmy się na chłodno logicznej kolejności rozwiązywania problemu, nie popadając w szaleństwo. Chodzi o to, aby przejść od najmniej inwazyjnego do najbardziej technicznego. testowanie między każdym krokiem:

  • Usuń nakładkę/ShadowPlay i wszelkie rejestratory w czasie rzeczywistym; wyłącz HAGS.
  • Użyj rozdzielczości natywnej, limitu FPS i umiarkowanego lub wyłączonego AA w panelu NVIDIA.
  • Sprawdź temperaturę, usuń przetwornice częstotliwości i unikaj długotrwałych szczytowych obciążeń przy częstotliwości 165 Hz, chyba że jest to absolutnie konieczne.
  • Zainstaluj ponownie sterownik za pomocą DDU; jeśli się nie uda, spróbuj poprzedni stabilny sterownik i ważne.
  • Tylko jeśli problem się utrzymuje, zastosuj jedno z Ustawienia TDR z Rejestru i ocenia przez kilka godzin.
  • Jeśli rozwijasz, wdrażaj trasę HandleDeviceLost, GetDeviceRemovedReason i wypróbuj polecenie dxcap -forcetdr.

Podczas testów utrzymuj grę w oknie lub bez obramowania, aby móc wyświetlać komunikaty i wersje notatek, częstotliwość występowania i wprowadzonych zmianach. Dzięki temu będziesz mógł śledzić zmiany i zaoszczędzić czas.

Kiedy eskalować problem

Jeśli po wypróbowaniu wszystkich powyższych rozwiązań nadal doświadczasz częstych banów, zaleca się eskalację. Zgłoś problem do obsługa gier Dostarczając logi, DxDiag, informacje o sterowniku, dokładne kroki i informację, czy błąd występuje z nakładką/HAGS, czy bez niej. Zrób to samo z Wsparcie producenta GPU Jeśli podejrzewasz konkretną wersję sterownika. Na nowym sprzęcie wypróbuj również stabilny punkt odniesienia (bez popadania w DXGI), aby wykluczyć wady fizyczne.

W środowiskach programistycznych generuje przechwytywanie diagnostyczne Za pomocą narzędzi graficznych uruchom TDR za pomocą dxcap i dołącz ślad; ułatwisz życie inżynierowi, który musi go odtworzyć, a Ty będziesz miał większe szanse na otrzymać przydatną korektę.

Biorąc pod uwagę powyższe, masz pełen wachlarz przyczyn i rozwiązań, aby stawić czoła DXGI_ERROR_DEVICE_REMOVED: od wyłączania nakładek i redukcji obciążeń szczytowych, przez ponowną instalację lub wycofywanie sterowników, po inteligentne modyfikowanie TDR w rejestrze, a jeśli programujesz, implementację logiki ponownego tworzenia urządzeń i diagnostyki za pomocą GetDeviceRemovedReason i dxcap. Nie ma złotego środka, ale istnieje uporządkowana ścieżka Do odzyskiwanie długich sesji i przywróć stabilność swojej gry, nie tracąc przy tym nic.

Komunikat o utracie urządzenia w silniku Unreal Engine
Powiązany artykuł:
Wyjaśnienie komunikatu o utracie urządzenia w Unreal Engine: rzeczywiste przyczyny i rozwiązania