VK_ERROR_DEVICE_LOST vo Vulkane: skutočné príčiny, diagnostika a opravy

Posledná aktualizácia: 01.02.2024

  • VK_ERROR_DEVICE_LOST zvyčajne znamená reset ovládača alebo zlyhanie swapchainu.
  • Úpravy pre jednotlivé hry (ako napríklad vrstvený DXGI Swapchain) môžu stabilizovať tituly.
  • Nové rozšírenia (napr. objekty shaderov) zvyšujú riziko zachytení.
  • Presné verzie operačného systému/ovládača a protokoly sú kľúčové pre reprodukciu a opravu.

Chyba VK_ERROR_DEVICE_LOST

Ak ste narazili na správu VK_ERROR_DEVICE_LOST Pri hraní hier alebo navrhovaní aplikácií s Vulkanom nie ste sami: je to bežný problém, ktorý sa môže prejaviť ako pády, neočakávané vypnutia alebo dokonca slučky, kedy sa program úplne nezatvorí. Aj keď je to desivé, zvyčajne má vysvetlenie a predovšetkým spôsoby, ako ho zmierniť alebo vyriešiť.

V tejto príručke nájdete Prípadové štúdie v reálnom živote na Windowse a Linuxe s hrami a nástrojmi, indície na diagnostikovanie zdroja, nastavenia, ktoré pomohli iným používateľom (napríklad konkrétne nastavenie v ovládacom paneli NVIDIA pre Detroit: Become Human s RTX 3080) a Spoľahlivé zdroje pre lepšie pochopenie VulkanuCieľom je, aby ste nestrácali čas preskakovaním z fóra na fórum a na prvý pohľad mali riešenia, ktoré skutočne majú potenciál. Poďme sa dozvedieť všetko o... chyba VK_ERROR_DEVICE_LOST. 

Čo znamená chyba VK_ERROR_DEVICE_LOST a prečo sa zobrazuje?

Vo Vulkane chyba VK_ERROR_DEVICE_LOST indikuje, že logické zariadenie prestalo byť funkčné: ovládač GPU ho reštartoval, došlo k zaseknutiu ovládača, došlo k TDR z dôvodu blokovania alebo časového limitu frontu, alebo aplikácia odoslala niečo, čo hardvér/ovládač nedokázal spracovať. Nie vždy to skončí haváriou; niekedy, ako uvidíme, aplikácia sa zasekne v slučke a musí sa násilne ukončiť.

Hoci sa vzorec líši v závislosti od zariadenia a softvéru, obvyklými spúšťačmi sú Nestabilné ovládače, veľmi nové rozšírenia, vrstvy/prekrytia, časové limity systému a niekedy len nešťastné kombinácie grafických nastavení. Znalosť niektorých prípadov z reálneho života pomáha reprodukovať a riešiť problém.

Reálne prípady: čo sa stalo a čo sa urobilo

Únik informácií o Nvidia RTX 5070 Super-1

Detroit: Staňte sa človekom na Windowse, RTX 3080 a rozhodujúca úprava v NVIDIA

Používateľ s GeForce RTX 3080 neustále dochádzalo k pádom hry s chybou VK_ERROR_DEVICE_LOST, napriek tomu, že som robil typické: Aktualizácia ovládačov, testovanie režimu kompatibility a možnosti kontrolyRiešenie, ktoré mi fungovalo, bolo prejsť do ovládacieho panela NVIDIA a zmeniť konkrétnu preferenciu týkajúcu sa Vulkan/OpenGL na úrovni programu.

Trasa, formulovaná iným spôsobom, bola: Ovládací panel NVIDIA > Spravovať nastavenia 3D > Nastavenia programu > vyberte Detroit: Become HumanV možnosti prednastavenej metódy Vulkan/OpenGL bolo nastavenie, ktoré spôsobilo rozdiel, nastavené na „Preferovať podľa vrstiev v DXGI Swapchain«. S touto zmenou, opakované uzávierky zmizli spojené s chybou VK_ERROR_DEVICE_LOST.

Tento príklad ilustruje, že niekedy, úprava kompatibility alebo spôsob správy swapchainu Pri vrstvách to môže byť kľúčové, najmä ak má titulok konkrétny renderovací kanál alebo ak existuje interakcia s inými vrstvami v systéme.

Dota 2 na Linuxe: Slučky a zdanlivo náhodná nestabilita

Ďalším významným prípadom je ten, Dota 2 beží natívne na LinuxeHlásený vzorec bol záhadný: chyba VK_ERROR_DEVICE_LOST sa objavovala počas zápasov v reálnom čase aj pri sledovaní záznamov, niekedy jednoducho... sledovanie boja alebo dokonca písanie v chateNamiesto úplného ukončenia hry zostala Nekonečná slučka a museli byť „zabití“ manuálne.

V tejto konkrétnej skúsenosti neboli poskytnuté žiadne príspevky Žiadne ID zápasu ani snímky obrazovky (V oboch poliach bolo uvedené „Žiadna odpoveď“), čo sťažuje koreláciu presných okamihov. Napriek tomu príznak (zamrznutie bez úplného zrútenia) poukazuje na neobnoviteľný stav zariadenia z pohľadu aplikácie. V systéme Linux môže tento vzorec súvisieť s ovládačom, prezentačným frontom a správou načasovania, alebo interakcia medzi skladateľom a grafickým prostredím.

V takýchto prípadoch je vhodné skontrolovať systémové protokoly (dmesg, journalctl), skontrolujte verzie Mesa/NVIDIA v závislosti od grafického procesora a vypnite vrstvy tretích strán. Toto sú tipy, ktoré sú síce všeobecné, ale stávajú sa relevantnými v titul Vulkan náročný na renderovanie ako Dota 2.

Exkluzívny obsah – kliknite sem  Zlá správa pre každého, kto hľadá grafickú kartu od NVIDIA: Ceny stále rastú.

Nestabilné snímky obrazovky s RenderDoc a VK_EXT_shader_object

Použitie nástrojov na vykresľovanie pridáva vlastnú sadu premenných. Bolo pozorované Nestability s RenderDoc pri zachytávaní aplikácií, ktoré používajú rozšírenie VK_EXT_shader_objectvrátane Chyby spôsobené pádmi obnoveného ovládača, zamŕzaním aplikácií a stratou zariadeniaNie je to prekvapujúce: hovoríme o nedávnom rozšírení a inherentne chúlostivej situácii (vštepovanie zachytávacej vrstvy do pokročilého potrubia).

Pre konzistentnú reprodukciu problému je príklad „shaderobjekty» z úložiska Sascha Willems/VulkanPostup bol: Spustite binárny súbor shaderobjects.exe v RenderDoc, zachyťte snímku a vyberte druhú udalosť vkQueueSubmit().. V tej chvíli, zobrazené dialógové okno s hlásením chyby nástroja.

Okrem toho, aby sa znížili mätúce faktory, boli pred zachytením odstránené nasledujúce: súbory .bin ktoré príklad generuje (vyrovnávacie pamäte shaderov) a chyba sa stále vyskytovala. Konkrétne prostredie bolo: RenderDoc_2024_07_02_0406d376_64, Windows 10 (10.0.19045.4529), Vulkan 1.3.275, GeForce GTX 1080 y ovládač 566.12Tieto údaje sú veľmi užitočné, ak nahlasujete alebo porovnávate podobné problémy.

Pády hier a Steamu a dokonca aj modré obrazovky

Bol hlásený aj obzvlášť nepríjemný scenár: Hra často padala, niekedy aj Steam, a dokonca sa objavila aj BSOD chyba. (modrá obrazovka). Základné akcie, ako napríklad Aktualizácia ovládačov, úprava kvality grafiky, vynútenie režimu celej obrazovky, vypnutie prekrytí y obmedzenie FPS na 60, ale uzávierky pokračovali každých pár minút hry.

Keď sú do rovnice zapojené modré obrazovky, podozrenie nestabilita na úrovni jadra/ovládača alebo v samotnom hardvériHoci je VK_ERROR_DEVICE_LOST chyba Vulkanu, ak je celý systém nefunkčný, je vhodné ho doplniť o testy pamäte, kontrola disku a monitorovanie teploty aby sa vylúčilo, že grafická karta alebo jej zdroj napájania sú na hranici svojich možností.

Možné príčiny: technické a každodenné

Interný hardvér počítača

Hoci každý prípad je jedinečný, existuje niekoľko bežných príčin, ktoré stoja za zváženie. Tu je mapa, ktorá vám pomôže s navigáciou. Najbežnejší problém s VK_ERROR_DEVICE_LOST:

  • Nestabilné alebo regresívne ovládače grafickej karty: V nedávnych verziách môžu niektoré tituly opraviť a iné pokaziť; stáva sa aj opak.
  • Nové alebo meniace sa rozšírenia: as VK_EXT_shader_object, ktorý je stále v štádiu vývoja a dokáže odhaliť hraničné prípady pomocou nástrojov na zachytávanie.
  • Časové limity a TDR (Windows): Ak úloha na grafickej karte trvá večne dlho, systém môže reštartovať ovládač a logické zariadenie sa „stratí“.
  • Prekrytia a vrstvyFPS injektory, chat, streamovanie alebo tracery môžu rušiť swapchain alebo pipeline.
  • Konkrétne konfigurácie swapchainuNiektoré režimy prezentácie, načasovania alebo kompozície môžu spôsobiť zlyhania na konkrétnom hardvéri/ovládačoch.
  • Poškodená vyrovnávacia pamäť shaderov alebo nesynchronizované: vymazanie vyrovnávacích pamätí (ako napríklad súborov .bin v príklade) môže odstrániť jemné nezrovnalosti.
  • Hardware na hraneTeploty, prepätia alebo mierne pretaktovanie/podpätie môžu spôsobiť občasný výskyt chyby.

Ako diagnostikovať bez straty chladu

Predtým, ako zmeníte dvadsať vecí naraz, je lepšie riadiť sa pokynmi. Cieľom je izolovať faktor, ktorý spúšťa chybu VK_ERROR_DEVICE_LOST Vo vašom konkrétnom prípade sa spoliehate na signály, ktoré dokážete objektívne zmerať alebo reprodukovať.

  1. Reprodukujte chybu v krátkej sekvencii: konkrétny súboj v hre Dota 2, menu v hre Detroit alebo rovnaký krok zachytenia v RenderDoc (napr. výber druhej funkcie vkQueueSubmit()).
  2. Všimnite si verzie operačného systému, ovládača a grafickej karty.Údaje ako Windows 10 build 19045.4529, GeForce GTX 1080 a ovládač 566.12 pomáhajú porovnávať prehľady.
  3. Zakázať prekrytia a vrstvySteam, GeForce Experience, Discord atď. Skontrolujte, či sa správanie zmení aj bez nich.
  4. Výnosy k „akciovým“ hodnotámBez pretaktovania GPU/CPU/RAM, s predvolenými limitmi napájania a bez agresívneho podpätia.
  5. Znovu vytvára pri sledovaní Iba v prípade potreby: Ak RenderDoc alebo podobné nástroje problém zhoršujú, skúste to najskôr bez zachytenia.
  6. Vymazať vyrovnávaciu pamäť shaderov: hra aj ovládač, ak je to relevantné. Súbory .bin v príklade to podporujú.
  7. Skontrolujte systémové protokolyV systéme Linux, dmesg a journalctl; vo Windowse, Prehliadač udalostí a minidumps, ak sa vyskytne BSOD.
Exkluzívny obsah – kliknite sem  Notebooky s viacerými vstavanými displejmi: kompletný sprievodca, použitie a konfigurácie

Ak počas procesu narazíte na krok, ktorý vždy spôsobí chybu (ako sa to stalo s druhým vkQueueSubmit v príklade shaderových objektov), ​​už máte polovičnú diagnózu: skúste zmeniť iba jednu premennú (ovládač, nastavenie swapchainu, režim prezentácie), aby ste zistili, či spúšťač zmizne.

Praktické riešenia a úpravy, ktoré fungovali

Čína zakazuje čipy Nvidia s umelou inteligenciou

Neexistuje univerzálny čarovný prútik, ale existujú akcie s dobrou úspešnosťouNižšie je uvedený súbor opatrení zoradených od najmenej rušivých po najviac rušivé.

Hry pre Windows (NVIDIA/AMD) a Vulkan

  • NVIDIA-špecifické ladenie pre Detroit: Become HumanV Ovládacom paneli > Spravovať nastavenia 3D > Nastavenia programu > vyberte spustiteľný súbor hry, vyhľadajte predvoľbu Vulkan/OpenGL a nastavte ju na možnosť „Uprednostňovať vrstvy na DXGI Swapchain“. Toto eliminovalo opakované pády s RTX 3080.
  • Obmedzenie FPS a synchronizácieUdržiavanie 60 FPS a exkluzívneho režimu celej obrazovky môže stabilizovať niektoré ovládače, hoci to samo o sebe nie je vždy postačujúce.
  • Zakázať prekrytiaSteam, NVIDIA, Discord atď. Ak spozorujete zlepšenie, postupne ich znova zavádzajte, aby ste identifikovali vinníka.
  • „Známy dobrý“ vodičAk sa chyba zobrazí po aktualizácii, vyskúšajte predchádzajúcu stabilnú verziu; ak ste dlhšie neaktualizovali, nainštalujte si najnovšiu verziu WHQL.

Linux a natívne hry s Vulkanom (napr. Dota 2)

  • Skontrolujte grafický zásobník: : Verzia Mesa/NVIDIA vhodná pre vaše jadro a prostredie. Vylepšenie verzie môže opraviť nekonečnú slučku.
  • Skontrolujte editor a oknáOtestujte s a bez kompozitora, zobrazenie na celej obrazovke verzus bez okrajov a upravte režim prezentácie, ak to hra umožňuje.
  • Podrobné záznamyIdentifikujte čas havárie a v tomto čase si pozrite súbor dmesg/journalctl. Zaznamená sa chyba grafického procesora alebo reset.

Nástroje na zachytávanie a ladenie (RenderDoc)

  • Vyhnite sa problematickým krokomAk výber konkrétnej udalosti (napríklad druhej vkQueueSubmit()) spustí zlyhanie, obmedzte analýzu na kroky pred ňou alebo po nej.
  • Znížte zmätokPred zachytením a použitím „čistých“ zostavení projektu vymažte vyrovnávacie pamäte shaderov (ako napríklad tie s súbormi .bin v príklade).
  • Aktualizácia alebo zmena verzie: RenderDoc aj ovládač/GPU; s novými rozšíreniami môže novšia zostava obsahovať kľúčové opravy.

Keď sa aj Steam zrúti alebo sa zobrazí BSOD

  • Integrovaný systémSpúšťa testy pamäte, monitoruje teploty a kontroluje napájacie zdroje. VK_ERROR_DEVICE_LOST môže byť viditeľným príznakom hlbšieho problému.
  • Ovládače na úrovni jadraČisto preinštalujte ovládač grafickej karty. Ak BSOD pretrváva, zhromaždite minivýpisy, aby ste identifikovali presný modul.

Malé detaily, ktoré robia rozdiel

Existujú zdanlivo drobné úpravy, ktoré v praxi úplne zmeniť stabilitu konkrétneho titulu. Nastavenie „Preferovať vrstvy v DXGI Swapchain“ pre Detroit: Become Human je toho jasným príkladom. Tieto typy možností modulovať interakciu vrstiev, swapchainu a ovládačaa dokáže obísť konkrétnu chybu.

Ďalším užitočným detailom je vymazanie vyrovnávacej pamäte shaderov pred vykonaním väčších zmien alebo analýzou snímok obrazovky, ako to bolo urobené so súbormi .bin v príklade objektu shader. To znižuje nezrovnalosti a staré štáty ktoré sa vlečú medzi reláciami a cloudovými diagnózami.

Nakoniec, keď hra Nezatvára sa, ale zostáva v slučke. Po chybe je to signál, že logické zariadenie sa stalo nepoužiteľným bez toho, aby ho aplikácia plne spravovala. V takýchto prípadoch sa oplatí ho otestovať. iné spôsoby vykonávania (iný backend, ak existuje, zmena režimu obrazovky alebo vypnutie pokročilých funkcií, ako sú určité tiene alebo efekty), aby sa predišlo stavu, ktorý spúšťa pád.

Zdroje na pochopenie Vulkanu (a lepšie ladenie)

Získanie ďalších informácií o Vulkane vám pomôže interpretovať chyby ako VK_ERROR_DEVICE_LOST bez toho, aby ste museli skákať do slepej uličky. Jeden člen komunity odporučil oficiálne zdroje Khronos s prístupmi pre začiatočníkov a zostavenými zoznamami. Sú dobrým základom či už programujete, alebo len chcete pochopiť, čo sa deje.

  • Sprievodca pre začiatočníkov k Vulkanu (Khronos): Súbor úvodných zdrojov, ktoré vám pomôžu začať a pochopiť filozofiu API.
  • Zdroje Khronos Vulkan na GitHub: zoznam naznačuje, že zdroje boli presunuté na vulkan.org, kde nájdete aktualizovanú dokumentáciu.
Exkluzívny obsah – kliknite sem  Pracovná plocha systému Windows sa po prihlásení nenačíta: prečo sa to stane a ako to opraviť

Ak neviete, kde začať, Tieto príručky vám ušetria čas pri pokusoch a omyloch chaotický a poskytne vám kritériá na riešenie problémov, ako je strata zariadenia, časové limity, problémy so synchronizáciou a ďalšie.

Signály komunity: interakcia a komentáre

Okrem podrobných správ tam boli aj ľahké interakcie ako „Páči sa mi to“ v komentári a v konverzáciách, kde sa ich pýtali vzdelávacie zdrojeAj keď sa zdajú byť drobnými detailmi, odrážajú, že téma je živý a zdieľanýa že mnohé riešenia sa rodia zo súhrnu skúseností.

Stručný kontrolný zoznam pre váš prípad

Ak sa vám to práve teraz deje, vyskúšajte toto. krátky zoznam kontrol, inšpirované predchádzajúcimi prípadmi:

  • Aktualizácia alebo vrátenie späť staršej verzie ovládačaAk ste práve aktualizovali a začalo to zlyhávať, vyskúšajte predchádzajúcu stabilnú verziu; ak ste neaktualizovali niekoľko mesiacov, nainštalujte si najnovšiu WHQL.
  • Zakázať prekrytiaSteam, Discord, GeForce Experience atď. a skontrolujte, či sa chyba mení vo frekvencii.
  • Ladenie NVIDIA pre každú hruV hre Detroit: Become Human sa po nastavení predvoľby Vulkan/OpenGL na možnosť „Uprednostňovať vrstvy v DXGI Swapchain“ vyriešili pády hry.
  • Režim obrazovky a FPSVynútiť exkluzívny režim na celú obrazovku a mierne obmedziť FPS na stabilizáciu vykresľovacích frontov.
  • Vymazať vyrovnávaciu pamäť shaderov: Odstráni súbory vyrovnávacej pamäte hry a prípadne aj ovládač.
  • Systémové denníky: dmesg/journalctl v systéme Linux alebo Prehliadač udalostí v systéme Windows na detekciu resetov alebo chýb ovládača.

Kedy nahlásiť a čo uviesť

Hardvér počítača
Hardvér počítača

Ak problém pretrváva aj napriek všetkému, nahláste to presné informácie Zrýchlite pomoc. Vyhnite sa odpovedi „Žiadne odpovede“ v kľúčových poliach: uveďte ID hry a časová pečiatka Ak ide o hru so záznamami, priložte snímky obrazovky alebo protokoly keď je to možné.

Nezabudnite pridať kompletné technické prostredieVerzia operačného systému (napr. Windows 10 zostavenie 19045.4529), Presný grafický procesor (GeForce GTX 1080, RTX 3080), verzia ovládača (napríklad 566.12) a či používate nástroje ako RenderDoc, jeho betónová verzia (napr. RenderDoc_2024_07_02_0406d376_64). Reprodukcia týchto údajov je vzácna.

Často kladené otázky

Prečo hra nepadá a po chybe sa len opakuje? Pretože aplikácia vstúpi do stavu, v ktorom sa logické zariadenie stratí, ale výstupná logika sa úplne nevykoná. V praxi, musíš vynútiť zatvorenie a skontrolujte, ktorá udalosť alebo nastavenie spúšťa tento stav.

Pomôže vymazanie vyrovnávacej pamäte shaderov? V niekoľkých scenároch áno, najmä ak existujú nezrovnalosti medzi zostaveniami a vyrovnávacími pamäťami (ako súbory .bin v príklade objektov shaderov). Toto je rýchly spôsob, ako odstrániť poškodené stavy.

Mám snímať pomocou RenderDoc, ak mám podozrenie na ovládač? Zachytávanie môže pomôcť pochopiť potrubie, ale môže to tiež spôsobiť nestabilitu, ak je rozšírenie alebo ovládač zelený. Najprv otestujte bez nahrávania a ak nahrávate, urobte to s verziami nástroja. že vieš, že je stabilný pre váš prípad.

Môžu prekrytia spôsobiť VK_ERROR_DEVICE_LOST? Áno, niekedy vstreknuté vrstvy interferujú so swapchainom alebo so synchronizáciou. Ich vypnutie je jedným z prvých testov, ktoré treba vykonať.

Čo ak sa mi BSOD zobrazí aj vo Windowse? To naznačuje problémy na úrovni jadra/ovládača alebo hardvéruOkrem krokov Vulkan vykonáva testy pamäte, kontroluje teploty, kontroluje napájací zdroj a analyzuje minivýpisy, aby lokalizoval chybný modul.

Máte jasný plán: Identifikujte vzorec, izolujte spúšťač a aplikujte úpravy s preukázateľnou účinnosťouOd prednastavenej zmeny v ovládacom paneli NVIDIA, ktorá ukladala hry v hre Detroit: Become Human na RTX 3080, až po pokyny pre zachytávanie hier v RenderDoc a monitorovacie protokoly v systéme Linux pre Dota 2, existujú konkrétne riešenia, ktoré výrazne znižujú pády typu VK_ERROR_DEVICE_LOST. Ak sa na pochopenie základov Vulkanu spoliehate aj na zdroje Khronos, každý pokus bude presnejší a strávite menej času slepými testami.