- VK_ERROR_DEVICE_LOST genellikle bir sürücü sıfırlaması veya takas zinciri arızası anlamına gelir.
- Oyun başına yapılan ayarlamalar (katmanlı DXGI Swapchain gibi) oyunları stabilize edebilir.
- Yeni uzantılar (örneğin gölgelendirici nesneler) yakalama riskini artırır.
- Doğru işletim sistemi/sürücü sürümleri ve günlükleri, yeniden üretme ve düzeltmenin anahtarıdır.
VK_ERROR_DEVICE_LOST mesajıyla karşılaştıysanız Vulkan ile oyun oynarken veya uygulama tasarlarken yalnız değilsiniz: Bu, çökmeler, beklenmedik kapanmalar ve hatta programın tamamen kapanmadığı döngüler şeklinde kendini gösterebilen yaygın bir sorundur. Korkutucu olsa da, genellikle bir açıklaması ve en önemlisi de hafifletme veya çözme yolları vardır.
Bu kılavuzda şunları bulacaksınız: Windows ve Linux'ta oyunlar ve araçlarla gerçek yaşam örnekleri, kaynağı teşhis etmeye yönelik ipuçları, diğer kullanıcılara yardımcı olan ayarlar (örneğin, Detroit: Become Human with an RTX 3080 için NVIDIA Denetim Masası'ndaki belirli bir ayar) ve Vulkan'ı daha iyi anlamak için güvenilir kaynaklarFikir, forumdan foruma atlayarak zaman kaybetmemeniz ve gerçekten olasılıkları olan çözümlere bir bakışta ulaşmanızdır. hata VK_ERROR_DEVICE_LOST.
VK_ERROR_DEVICE_LOST ne anlama geliyor ve neden görünüyor?
Vulkan'da VK_ERROR_DEVICE_LOST hatası şunu gösterir: mantıksal aygıt artık çalışmıyor: GPU sürücüsü yeniden başlattı, bir sürücü kilitlendi, bir engelleme veya kuyruk zaman aşımı nedeniyle bir TDR oluştu veya uygulama, donanımın/sürücünün işleyemediği bir şey gönderdi. Her zaman çökmeyle sonuçlanmaz; bazen, göreceğimiz gibi, uygulama bir döngüye takılıp kalıyor ve zorla kapatılması gerekiyor.
Desen, ekipmana ve yazılıma bağlı olarak değişse de, genel tetikleyiciler şunlardır: Kararsız sürücüler, çok yeni uzantılar, katmanlar/kaplamalar, sistem zaman sınırlamaları ve bazen de grafik ayarlarının talihsiz kombinasyonları. Gerçek hayattan bazı örnekleri bilmek, sorunu yeniden üretmeye ve çözmeye yardımcı olur.
Gerçek vakalar: neler yaşandı ve neler yapıldı

Detroit: Windows, RTX 3080 ve NVIDIA'da belirleyici bir ayarlamayla Become Human
Bir kullanıcıya sahip GeForce RTX 3080 Tipik aşağıdakileri yapmama rağmen sürekli olarak VK_ERROR_DEVICE_LOST hatasıyla oyun çökmeleri yaşıyordum: Sürücüleri güncelleyin, uyumluluk modunu test edin ve seçenekleri inceleyinBenim için işe yarayan çözüm NVIDIA Denetim Masası'na gidip program düzeyinde Vulkan/OpenGL ile ilgili belirli bir tercihi değiştirmek oldu.
Başka bir şekilde formüle edilecek olursa rota şöyleydi: NVIDIA Denetim Masası > 3B Ayarlarını Yönet > Program Ayarları > Detroit: Become Human'ı seçinVulkan/OpenGL ön ayar yöntemi seçeneğinde fark yaratan ayar, bunu " olarak ayarlamak oldu.DXGI Swapchain'de katmanlara göre tercih edilir«. Bu değişiklikle, tekrarlanan kapanışlar ortadan kalktı VK_ERROR_DEVICE_LOST ile ilişkilidir.
Bu örnek bazen şunu gösteriyor: uyumluluk ayarlaması veya takas zincirinin nasıl yönetildiği Katmanlarla birlikte, özellikle başlığın belirli bir render hattı olduğunda veya sistemdeki diğer katmanlarla etkileşim olduğunda anahtar olabilir.
Linux'ta Dota 2: Döngü ve Görünüşte Rastgele Kararsızlık
Bir diğer önemli vaka ise Dota 2, Linux'ta yerel olarak çalışıyorBildirilen desen kafa karıştırıcıydı: VK_ERROR_DEVICE_LOST hatası hem gerçek zamanlı maçlar sırasında hem de tekrarları izlerken ortaya çıkıyordu, bazen sadece bir kavgayı izlemek veya sohbette yazmakOyun tamamen kapanmak yerine, bir Sonsuz döngü ve elle "öldürülmesi" gerekiyordu.
Bu özel deneyimde hiçbir katkı yapılmadı Eşleşme Kimliği veya ekran görüntüsü yok ("Her iki alanda da "yanıt yok" ifadesi yer aldı), bu da kesin anları ilişkilendirmeyi zorlaştırıyor. Yine de, semptom (tam bir çökme olmadan donma) şuna işaret ediyor: kurtarılamaz bir cihaz durumu Uygulama açısından bakıldığında, Linux'ta bu model sürücü, sunum kuyruğu ve zamanlama yönetimiyle ilişkilendirilebilir veya bazı besteci/grafik ortam etkileşimleri.
Bu tür senaryolarda, gözden geçirilmesi tavsiye edilir sistem günlükleri (dmesg, journalctl), GPU'ya bağlı olarak Mesa/NVIDIA sürümlerini kontrol edin ve üçüncü taraf katmanlarını devre dışı bırakın. Bunlar, genel olsa da, zamanla önemli hale gelen ipuçlarıdır. yoğun render gerektiren bir Vulkan oyunu Dota 2 gibi.
RenderDoc ve VK_EXT_shader_object ile dengesiz ekran görüntüleri
Çizim araçlarının kullanımı, kendi değişken kümesini ekler. RenderDoc ile ilgili kararsızlıklar uzantıyı kullanan uygulamaları yakalarken VK_EXT_shader_objectincluyendo Kurtarılan sürücü çökmeleri, uygulama donmaları ve kayıp cihaz hatalarıŞaşırtıcı değil: yakın zamanda yapılan bir uzantıdan ve doğası gereği hassas bir durumdan (bir yakalama katmanının gelişmiş bir veri hattına eklenmesi) bahsediyoruz.
Sorunu tutarlı bir şekilde yeniden üretmek için, " örneğigölge nesneleri» deposundan Sascha Willems/Vulkanİşlem şu şekildeydi: RenderDoc altında shaderobjects.exe ikili dosyasını çalıştırın, bir kare yakalayın ve ikinci vkQueueSubmit() olayını seçin. O anda hata raporu iletişim kutusu belirdi aracın.
Ayrıca, karıştırıcı faktörlerin azaltılması için, yakalamadan önce aşağıdakiler kaldırıldı: .bin dosyaları Örneğin oluşturduğu (gölgelendirici önbellekleri) ve hata yine de oluştu. Belirli ortam şuydu: RenderDoc_2024_07_02_0406d376_64, Windows 10 (10.0.19045.4529), Vulkan 1.3.275, GeForce GTX 1080 y sürücü 566.12Benzer sorunları bildiriyorsanız veya karşılaştırıyorsanız bu veriler çok faydalıdır.
Oyun ve Steam çökmeleri ve hatta mavi ekranlar
Özellikle can sıkıcı bir senaryo da bildirildi: Oyun sık sık çöküyordu, bazen Steam'de de oluyordu, hatta BSOD bile çıkıyordu. (mavi ekran). Temel eylemler şunlardır: Sürücüleri güncelleyin, grafik kalitesini ayarlayın, tam ekran modunu zorlayın, kaplamaları devre dışı bırakın y FPS'yi 60 ile sınırlaAncak maçın her birkaç dakikasında kapanışlar devam etti.
Mavi ekranlar denkleme dahil olduğunda, şüphe çekirdek/sürücü düzeyinde veya donanımın kendisinde istikrarsızlıkVK_ERROR_DEVICE_LOST bir Vulkan hatası olmasına rağmen, tüm sistem sallantıdaysa, aşağıdakilerle desteklenmesi önerilir: bellek testleri, disk denetimi ve termal izleme GPU'nun veya güç kaynağının limitte olma ihtimalini ortadan kaldırmak için.
Olası nedenler: teknik ve günlük

Her vaka kendine özgü olsa da, dikkate alınması gereken birkaç ortak neden vardır. İşte size yol gösterecek bir harita. VK_ERROR_DEVICE_LOST'ta en yaygın olanı:
- Kararsız veya gerilemiş grafik sürücüleri: Son çıkan sürümler bazı başlıkları düzeltirken bazılarını bozabiliyor; bunun tersi de olabiliyor.
- Yeni veya değişen uzantılar: olarak
VK_EXT_shader_object, hala olgunlaşma aşamasındadır ve yakalama araçlarıyla uç durumları ortaya çıkarabilir. - Zaman aşımı ve TDR (Windows): GPU'daki bir iş sonsuza kadar sürerse, sistem sürücüyü yeniden başlatabilir ve mantıksal aygıtı "kayıp" bırakabilir.
- Kaplamalar ve katmanlar: FPS enjektörleri, sohbet, yayın veya izleyiciler takas zincirine veya boru hattına müdahale edebilir.
- Belirli takas zinciri yapılandırmaları: Bazı sunum, zamanlama veya kompozisyon modları, belirli donanım/sürücülerde çökmelere neden olabilir.
- Gölgelendirici önbelleği bozuk veya senkronizasyon dışında: önbellekleri temizlemek (örnekte .bin dosyaları gibi) ince tutarsızlıkları giderebilir.
- Sınırdaki donanım: Sıcaklıklar, güç dalgalanmaları veya hafif hız aşırtma/düşük voltaj, hatanın aralıklı olarak görünmesine neden olabilir.
Sakinliğinizi kaybetmeden nasıl teşhis koyabilirsiniz?
Yirmi şeyi birden değiştirmeden önce bir sırayı takip etmek daha iyidir. Amaç, VK_ERROR_DEVICE_LOST'u tetikleyen faktörü izole etmektir Sizin özel durumunuzda, nesnel olarak ölçebileceğiniz veya yeniden üretebileceğiniz sinyallere güvenmek.
- Hatayı kısa bir dizide yeniden üretin: Dota 2'deki belirli bir dövüş, Detroit'teki bir menü veya RenderDoc'taki aynı yakalama adımı (örneğin, ikinci vkQueueSubmit()'i seçmek).
- İşletim sistemi, sürücü ve GPU sürümlerini not edin.:Windows 10 build 19045.4529, GeForce GTX 1080 ve sürücü 566.12 gibi veriler raporları karşılaştırmaya yardımcı olur.
- Kaplamaları ve katmanları devre dışı bırak: Steam, GeForce Experience, Discord, vb. Bunlar olmadan davranışın değişip değişmediğini kontrol edin.
- "Stok" değerlerine geri döner: GPU/CPU/RAM hız aşırtması yok, varsayılan güç sınırlamaları yok ve agresif bir voltaj düşürme yok.
- İzleme altında yeniden oluşturur Yalnızca gerekliyse: RenderDoc veya benzeri araçlar sorunu daha da kötüleştiriyorsa, önce yakalama yapmadan deneyin.
- Gölgelendirici önbelleğini temizle: hem oyun hem de sürücü (varsa). Örnekteki .bin dosyaları bunu destekler.
- Sistem günlüklerini kontrol edin: Linux'ta dmesg ve journalctl; Windows'ta ise BSOD durumunda Olay Görüntüleyicisi ve minidump'lar.
Eğer işlem sırasında bir adımla karşılaşırsanız her zaman hatayı hızlandırır (gölgelendirici nesneler örneğindeki ikinci vkQueueSubmit'te olduğu gibi), zaten yarı tanıya sahipsiniz: deneyin yalnızca bir değişkeni değiştir (sürücü, takas zinciri ayarı, sunum modu) tetikleyicinin kaybolup kaybolmadığını görmek için.
İşe yarayan pratik çözümler ve ayarlamalar

Evrensel bir sihirli değnek yok, ancak var iyi bir başarı oranına sahip eylemlerAşağıda en az müdahaleci olandan en çok müdahaleci olana doğru sıralanmış bir dizi önlem bulunmaktadır.
Windows (NVIDIA/AMD) ve Vulkan oyunları
- Detroit: Become Human için NVIDIA'ya özel ayarlama: Denetim Masası > 3D Ayarlarını Yönet > Program Ayarları > oyun yürütülebilir dosyasını seçin, Vulkan/OpenGL ön ayarını bulun ve "DXGI Swapchain'de Katmanları Tercih Et" olarak ayarlayın. Bu, RTX 3080'de tekrarlanan çökmeleri ortadan kaldırdı.
- FPS ve senkronizasyonu sınırlayın:60 FPS ve özel tam ekran özelliğini korumak bazı sürücüleri stabilize edebilir, ancak her zaman tek başına yeterli değildir.
- Kaplamaları devre dışı bırak: Steam, NVIDIA, Discord vb. Eğer bir gelişme fark ederseniz, suçluyu tespit etmek için bunları tek tek yeniden deneyin.
- "Bilinen iyi" sürücüEğer hata güncellemeden sonra ortaya çıkarsa, daha önceki kararlı sürümü deneyin; eğer bir süredir güncelleme yapmadıysanız, en son WHQL sürümünü yükleyin.
Vulkan ile Linux ve yerel oyunlar (örneğin Dota 2)
- Grafik yığınını kontrol edin: : Çekirdeğiniz ve ortamınız için uygun Mesa/NVIDIA sürümü. Sürüm yükseltmesi sonsuz döngüyü düzeltebilir.
- Besteciyi ve pencereleri kontrol edin: Kompozitörle veya kompozitörsüz, tam ekran ve çerçevesiz pencere olarak test edin ve oyun izin veriyorsa sunum modunu ayarlayın.
- Ayrıntılı günlükler: Çökmenin meydana geldiği zamanı belirleyin ve o sırada dmesg/journalctl dosyasına bakın. Bir GPU hatası veya sıfırlaması kaydedilecektir.
Yakalama ve Hata Ayıklama Araçları (RenderDoc)
- Sorunlu adımlardan kaçının: Belirli bir olayın seçilmesi (örneğin ikinci vkQueueSubmit()) çökmeye neden oluyorsa, analizi bundan önceki veya sonraki adımlarla sınırlayın.
- Karışıklığı azaltın: Projeyi yakalamadan önce shader önbelleklerini temizleyin (örnekte .bin uzantılı olanlar gibi) ve projenin "temiz" sürümlerini kullanın.
- Sürümü güncelle veya değiştir: hem RenderDoc hem de sürücü/GPU; yeni uzantılarla, daha yeni bir yapı önemli düzeltmeler içerebilir.
Steam da çöktüğünde veya BSOD göründüğünde
- sistem bütünlüğü: Bellek testleri çalıştırır, sıcaklıkları izler ve güç kaynaklarını kontrol eder. VK_ERROR_DEVICE_LOST daha derin bir sorunun görünür bir belirtisi olabilir.
- Çekirdek düzeyindeki sürücüler: GPU sürücüsünü temiz bir şekilde yeniden yükleyin. BSOD devam ederse, modülün tam adını belirlemek için minidump dosyalarını toplayın.
Fark yaratan küçük ayrıntılar
Görünüşte küçük ayarlamalar var ama pratikte, istikrarı tamamen değiştirmek Belirli bir başlığın. Detroit: Become Human için "DXGI Swapchain'de katmanları tercih et" ayarı buna açık bir örnektir. Bu tür seçenekler katmanların, takas zincirinin ve sürücünün nasıl etkileşime girdiğini modüle edinve belirli bir hatayı atlatabilir.
Bir diğer faydalı ayrıntı ise gölgelendirici önbelleğini temizleme Gölgelendirici nesne örneğinde .bin dosyalarında yapıldığı gibi, büyük değişiklikler yapmadan veya ekran görüntülerini analiz etmeden önce. Bu, tutarsızlıklar ve eski durumlar oturumlar arasında uzayan ve tanıları bulandıran.
Son olarak, bir oyun Kapanmıyor ama bir döngüde kalıyor Hatadan sonra, mantıksal aygıtın uygulama tarafından tam olarak yönetilmeden kullanılamaz hale geldiğine dair bir ipucu elde edilir. Bu gibi durumlarda, test etmeye değer. diğer infaz yolları (varsa farklı bir arka uç kullanın, ekran modunu değiştirin veya belirli gölgeler veya efektler gibi gelişmiş özellikleri devre dışı bırakın) çökmeye neden olan durumu önlemek için.
Vulkan'ı anlamak (ve daha iyi hata ayıklamak) için kaynaklar
Vulkan hakkında daha fazla bilgi edinmek, VK_ERROR_DEVICE_LOST gibi hataları körü körüne atlamadan yorumlamanıza yardımcı olur. Bir topluluk üyesi, yeni başlayanlara uygun yaklaşımlar ve özenle seçilmiş listeler içeren resmi Khronos kaynaklarını önerdi. Onlar iyi bir temeldir İster programlama yapın, ister sadece olup biteni anlamak isteyin.
- Vulkan (Khronos) Başlangıç Rehberi: API felsefesini anlamanıza ve başlamanıza yardımcı olacak giriş düzeyindeki kaynakların bir koleksiyonu.
- GitHub'daki Khronos Vulkan kaynakları: listeleme, kaynakların şuraya taşındığını gösteriyor: vulkan.orgGüncellenmiş dokümanları bulabileceğiniz yer.
Nereden başlayacağınızı bilmiyorsanız, Bu kılavuzlar deneme yanılma yoluyla hata yapmanızı engelleyecektir dağınık ve cihaz kaybı, zaman aşımı, senkronizasyon sorunları gibi sorunları ele almanız için size kriterler verecektir.
Topluluk sinyalleri: etkileşim ve yorumlar
Ayrıntılı raporlara ek olarak, "Beğen" gibi hafif etkileşimler bir yorumda ve kendilerine sorulan konuşmalarda öğrenme kaynaklarıBunlar küçük ayrıntılar gibi görünse de, konunun ne kadar önemli olduğunu yansıtıyor. canlı ve paylaşılanve birçok çözümün deneyimlerin toplamından doğduğunu.
Davanız için hızlı kontrol listesi
Eğer şu anda sizin de başınıza böyle bir şey geliyorsa, şunu deneyin. kısa kontrol listesiÖnceki vakalardan esinlenerek:
- Sürücüyü güncelle veya geri alEğer yeni güncelleme yaptıysanız ve çökmeye başladıysa, önceki kararlı sürümü deneyin; aylardır güncelleme yapmadıysanız, en son WHQL sürümünü yükleyin.
- Kaplamaları devre dışı bırak: Steam, Discord, GeForce Experience vb. sitelere girip hatanın sıklığının değişip değişmediğine bakın.
- Oyun başına NVIDIA ayarı: Detroit: Become Human'da Vulkan/OpenGL ön ayarını "DXGI Swapchain'de Katmanları Tercih Et" olarak ayarlamak çökmeleri çözdü.
- Ekran modu ve FPS: İşleme kuyruklarını dengelemek için yalnızca tam ekranı zorlayın ve FPS'yi orta düzeyde sınırlayın.
- Gölgelendirici önbelleklerini temizle: Oyun önbellek dosyalarını ve varsa sürücüyü siler.
- Sistem günlükleri: Sürücü sıfırlamalarını veya hatalarını tespit etmek için Linux'ta dmesg/journalctl veya Windows'ta Olay Görüntüleyicisi kullanın.
Ne zaman bildirimde bulunulmalı ve neler dahil edilmeli
Her şeye rağmen sorun devam ederse, lütfen bize bildirin. Doğru bilgi Yardımı hızlandırın. Anahtar alanlarda "Yanıt Yok" mesajını önleyin: Oyun kimliği ve zaman damgası Tekrarları olan bir oyun ise ve eklerseniz ekran görüntüleri veya günlükler mümkün olduğunda.
Eklemeyi unutmayın tam teknik ortam: İşletim sistemi sürümü (örneğin Windows 10 derlemesi 19045.4529), Tam GPU (GeForce GTX 1080, RTX 3080), sürücü sürümü (566.12 gibi) ve aşağıdaki gibi araçlar kullanıp kullanmadığınız RenderDoc, somut versiyonu (örn. RenderDoc_2024_07_02_0406d376_64). Bu veriyi yeniden üretmek altın değerindedir.
Sık sorulan sorular
Oyun neden çökmüyor ve hatadan sonra sadece döngüye girmiyor? Çünkü uygulama mantıksal aygıtın kaybolduğu bir duruma girer, ancak çıktı mantığı tam olarak yürütülmez. Pratikte, kapanışı zorlamalısın ve hangi olayın veya ayarın bu durumu tetiklediğini kontrol edin.
Gölgelendirici önbelleğini temizlemek işe yarar mı? Birçok senaryoda evet, özellikle de yapılar ve önbellekler arasında tutarsızlıklar (gölgelendirici nesneler örneğindeki .bin dosyaları gibi). Bu, bozuk durumları atmanın hızlı bir yoludur.
Sürücüden şüpheleniyorsam RenderDoc ile mi yakalamalıyım? Yakalama kutusu boru hattını anlamaya yardımcı olurAncak uzantı veya sürücü yeşil renkteyse, bu durum istikrarsızlığa da yol açabilir. Önce yakalama yapmadan test edin ve yakalama yaparsanız, bunu aracın farklı sürümleriyle yapın. kararlı olduğunu biliyorsun senin davan için.
Kaplamalar VK_ERROR_DEVICE_LOST hatasına neden olabilir mi? Evet, bazen enjekte edilen katmanlar takas zincirine müdahale ediyor veya senkronizasyonla. Bunları devre dışı bırakmak, gerçekleştirilecek ilk testlerden biridir.
Windows'ta da BSOD görürsem ne olur? Bu şunu gösteriyor ki çekirdek/sürücü veya donanım düzeyinde sorunlarVulkan adımlarına ek olarak, bellek testleri gerçekleştirir, sıcaklıkları kontrol eder, güç kaynağını inceler ve hatalı modülü bulmak için minidump'ları analiz eder.
Net bir yol haritanız var: Deseni belirleyin, tetikleyiciyi izole edin ve kanıtlanmış etkililikle ayarlamalar uygulayınRTX 3080'de Detroit: Become Human'da oyunları kaydeden NVIDIA Denetim Masası'ndaki ön ayar değişikliğinden, Dota 2 için Linux'taki RenderDoc yakalama yönergelerine ve izleme günlüklerine kadar, VK_ERROR_DEVICE_LOST türündeki çökmeleri büyük ölçüde azaltan somut çözümler mevcut. Vulkan'ın temellerini anlamak için Khronos kaynaklarına da güveniyorsanız, her girişim daha doğru olacaktır ve kör testlere daha az zaman harcarsınız.
Küçüklüğünden beri teknolojiye meraklı. Sektörde güncel olmayı ve her şeyden önemlisi iletişim kurmayı seviyorum. Bu yüzden uzun yıllardır teknoloji ve video oyunu web sitelerinde iletişime adadım. Beni Android, Windows, MacOS, iOS, Nintendo veya aklınıza gelen diğer ilgili konular hakkında yazarken bulabilirsiniz.
