HHata

Dört ayrı GameLoop arızasının hepsine DirectX hatası deniyor

Failed to initialize DirectX, DXGI_ERROR_DEVICE_HUNG ve DXGI_ERROR_DEVICE_REMOVED birbiriyle ilgisiz üç arızayı anlatır. Çözümü mesajın kendisi belirler; tahmin etmek bir akşamınızı yer.

DirectX, GameLoop'un ekrana çizerken kullandığı katman. Dolayısıyla emülatörle ekran kartı arasında ters giden neredeyse her şey, mesajında DirectX geçerek yüzeye çıkar. Bu, arızaların akraba olduğu anlamına gelmiyor. Aynı etiketi dört ayrı arıza paylaşıyor ve bunları birbirinden ayıran tek şey mesajın metni.

MesajAslında ne demek
Failed to initialize DirectX 11/12Render aygıtı hiç oluşturulamadı — sürücü ya da isteneni yapamayan bir GPU
GetDeviceRemovedReason failed, DXGI_ERROR_DEVICE_HUNGGPU kare ortasında yanıt vermeyi bıraktı, Windows sürücüyü sıfırladı
Bilgisayarınız DirectX 11'i desteklemiyorSürücüden gelen bir yetenek bildirimi; doğru da olabilir yanlış da
DXGI_ERROR_DEVICE_REMOVEDGPU tamamen ortadan kayboldu — sürücü çökmesi, kararsız saat hızları ya da güç

Başlatma hataları

Bu, oyun açılmadan önce çıkar ve cevabı genellikle ekran kartı sürücüsüdür. Sürücüyü Windows Update'ten değil, ekran kartı üreticisinin kendi sitesinden alın, kurun, yeniden başlatın.

Bu bir şey değiştirmezse GameLoop'un motor ayarlarından render modunu DirectX 12'den DirectX 11'e düşürün. 2018 öncesi donanımda DX12 desteği kâğıt üstünde çoğu zaman var, pratikte kararsızdır; en sık kurban da tümleşik grafikler olur. Onun da altındaki alternatif OpenGL.

Donanım arızası varsaymadan önce dxdiag çalıştırın. Sistem sekmesi kullanımdaki DirectX sürümünü bildirir. GameLoop bilgisayarınızın 11'i yapamadığını söylerken burada 12 yazıyorsa donanım sağlamdır, sürücü özellik seviyesini düzgün göstermiyordur — Aygıt Yöneticisi'nden kaldırıp üreticinin güncel sürümünü temiz şekilde kurun.

Aygıtın takılması ve aygıtın kaybolması

Bu ikisini başlatma hatalarından ayırmak gerekir, çünkü oyunun içinde gerçekleşirler ve hiçbiri tam olarak bir GameLoop hatası değildir.

DEVICE_HUNG, Windows'un Timeout Detection and Recovery mekanizmasının işini yapmasıdır: GPU kareyi zamanında döndüremedi, sürücü de uygulamanın altından sıfırlandı. Bunu güvenilir biçimde üreten üç şey var: aşırı ısınma, kararsız bir hız aşırtma ve yarım uygulanmış bir sürücü güncellemesi. Çekirdek ve bellek saat farklarını fabrika değerine döndürün, yük altında sıcaklıkları izleyin ve sürücü eskisinin üstüne kurulduysa yeniden kurmadan önce Güvenli Mod'da Display Driver Uninstaller ile — geliştiricisinin kendi sitesinden indirerek — temiz bir kaldırma yapın.

DEVICE_REMOVED bunun daha ağır kuzenidir: GPU tümden erişilemez hale gelmiştir. İlk iki kontrol aynı, üstüne güç beslemesi eklenir. Windows Olay Görüntüleyicisi, Windows Günlükleri ve Sistem altında, NVIDIA'da nvlddmkm, AMD'de amdkmdap adlı kaynaklara karşı sürücü seviyesinde ayrıntı kaydeder. Çökme saatinin etrafında bunlara göre filtrelemek, hiçbir genel çözüm listesinin veremeyeceği kadar bilgi verir.

Hiç mesaj olmadığında

GameLoop'un yükleme ekranından sonra sessizce kapanması çoğu zaman aynı DirectX hatasıdır, sadece iletişim kutusu bastırılmıştır. Olay Görüntüleyicisi'nin Uygulama günlüğünü çökme zamanına göre okuduğunuzda genellikle gerçek hata kodu oradadır. Ondan önce iki ucuz kontrol: kısayolun Uyumluluk sekmesinden tam ekran iyileştirmelerini kapatın ve Windows Ayarlar, Uygulamalar, Yüklü uygulamalar üzerinden Visual C++ Redistributable paketlerini onarın — bir çalışma zamanı bozulduğunda ilk bozulan şeylerden biri gölgelendirici derlemesidir.

Neyi çözmez

DirectX 12'yi yeniden kurmak. Yeniden kurulacak bir şey yok. O bir Windows bileşeni, dağıtılabilir bir paket değil.

TdrDelay kayıt defteri düzenlemesi. GPU zaman aşımını uzatmak, Windows'un takılmayı bildirmesini engeller. GPU yine takılmıştır. Bu, ısıl ya da sürücü kaynaklı bir sorunu çözmek yerine gizler; gerçekten kararsız bir kartta ise kurtarılabilir bir sıfırlamayı donmuş bir masaüstüne çevirir.

Aygıt kayboldu hatası için GameLoop'u yeniden kurmak. Emülatör, GPU veri yolundan düştüğü sırada tesadüfen çalışıyor olan süreçtir. Onu yeniden kurmak hiçbir şeye dokunmaz.

Refleksle bir Windows güncellemesini geri almak. Hata belirli bir KB'den bir iki gün sonra başladıysa ve sürücü zaten güncelse meşru bir hamledir. Herhangi bir DirectX mesajına ilk tepki olarak ise isabet oranı düşük, etkisi büyük ve yıkıcı bir müdahaledir.