- VK_ERROR_DEVICE_LOST parasti nozīmē draivera atiestatīšanu vai mijmaiņas ķēdes kļūmi.
- Spēles pielāgojumi (piemēram, slāņveida DXGI Swapchain) var stabilizēt nosaukumus.
- Jauni paplašinājumi (piemēram, ēnotāju objekti) palielina uztveršanas risku.
- Precīzas operētājsistēmas/draiveru versijas un žurnāli ir būtiski problēmu reproducēšanai un labošanai.

Ja esat saskāries ar ziņojumu VK_ERROR_DEVICE_LOST Spēlējot spēles vai veidojot lietojumprogrammas ar Vulkan, jūs neesat viens: tā ir izplatīta problēma, kas var izpausties kā avārijas, negaidītas izslēgšanas vai pat cilpas, kurās programma pilnībā neaizveras. Lai gan tas ir biedējoši, tam parasti ir izskaidrojums un, pats galvenais, veidi, kā to mazināt vai atrisināt.
Šajā ceļvedī jūs atradīsiet Reālās dzīves gadījumi operētājsistēmās Windows un Linux, izmantojot spēles un rīkus, norādes avota diagnosticēšanai, iestatījumus, kas ir palīdzējuši citiem lietotājiem (piemēram, īpašs iestatījums NVIDIA vadības panelī spēlei Detroit: Become Human ar RTX 3080), un Uzticami resursi, lai labāk izprastu VulkanDoma ir tāda, ka jūs netērējat laiku, lēkājot no viena foruma uz otru, un uzreiz varat redzēt risinājumus, kuriem patiešām ir iespējas. Uzzināsim visu par... kļūda VK_ERROR_DEVICE_LOST.
Ko nozīmē VK_ERROR_DEVICE_LOST un kāpēc tas parādās?
Vulkanā kļūda VK_ERROR_DEVICE_LOST norāda, ka loģiskā ierīce vairs nedarbojasGPU draiveris to ir restartējis, draiveris ir uzkaries, TDR ir radies bloķēšanas vai rindas taimauta dēļ vai lietojumprogramma nosūtīja kaut ko tādu, ko aparatūra/draiveris nevarēja apstrādāt. Tas ne vienmēr beidzas ar avāriju; dažreiz, kā redzēsim, lietojumprogramma iestrēgst cilpā un ir jāaizver piespiedu kārtā.
Lai gan modelis atšķiras atkarībā no aprīkojuma un programmatūras, parastie aktivizētāji ir Nestabili draiveri, pavisam jauni paplašinājumi, slāņi/pārklājumi, sistēmas laika ierobežojumi un dažreiz vienkārši neveiksmīgas grafikas iestatījumu kombinācijas. Dažu reālu gadījumu pārzināšana palīdz reproducēt un risināt problēmu.
Reāli gadījumi: kas notika un kas tika darīts

Detroit: Become Human operētājsistēmā Windows, RTX 3080 un izšķiroša korekcija NVIDIA
Lietotājs ar GeForce RTX 3080 pastāvīgi piedzīvoja spēles avārijas ar VK_ERROR_DEVICE_LOST, neskatoties uz tipisko darbību veikšanu: Atjauniniet draiverus, pārbaudiet saderības režīmu un pārskatiet opcijasRisinājums, kas man derēja, bija doties uz NVIDIA vadības paneli un programmas līmenī mainīt konkrētu preferenci, kas saistīta ar Vulkan/OpenGL.
Maršruts, formulēts citādi, bija šāds: NVIDIA vadības panelis > Pārvaldīt 3D iestatījumus > Programmas iestatījumi > atlasiet Detroit: Become HumanVulkan/OpenGL iepriekš iestatītās metodes opcijā atšķirība bija iestatījumā "Priekšroka slāņiem DXGI Swapchain«. Ar šīm izmaiņām atkārtotas slēgšanas pazuda saistīts ar VK_ERROR_DEVICE_LOST.
Šis piemērs ilustrē, ka dažreiz, saderības korekcija vai mijmaiņas ķēdes pārvaldība Slāņu gadījumā tas var būt galvenais, it īpaši, ja nosaukumam ir noteikts renderēšanas cauruļvads vai ja notiek mijiedarbība ar citiem sistēmas slāņiem.
Dota 2 operētājsistēmā Linux: Cikliska un šķietami nejauša nestabilitāte
Vēl viens nozīmīgs gadījums ir Dota 2 darbojas lokāli operētājsistēmā LinuxZiņotā shēma bija mulsinoša: VK_ERROR_DEVICE_LOST kļūda parādījās gan reāllaika spēļu laikā, gan atkārtojumu skatīšanās laikā, dažreiz vienkārši skatoties kautiņu vai pat rakstot tērzēšanāTā vietā, lai pilnībā aizvērtos, spēle palika nemainīga. Bezgalīga cilpa un tas bija jānogalina manuāli.
Šajā konkrētajā pieredzē netika sniegts nekāds ieguldījums Nav atbilstības ID vai ekrānuzņēmumu (Abos laukos bija norādīts "Nav atbildes"), kas apgrūtina precīzu momentu korelāciju. Pat ja tā, simptoms (sasalšana bez pilnīgas avārijas) norāda uz neatgūstams ierīces stāvoklis no lietojumprogrammas viedokļa. Linux sistēmā šo modeli var saistīt ar draiveri, prezentāciju rindu un laika pārvaldību vai zināma komponista/grafiskās vides mijiedarbība.
Šādos gadījumos ieteicams pārskatīt sistēmas žurnāli (dmesg, journalctl), pārbaudiet Mesa/NVIDIA versijas atkarībā no GPU un atspējojiet trešo pušu slāņus. Šie ir padomi, kas, lai arī vispārīgi, kļūst aktuāli renderēšanas ziņā intensīvs Vulkan nosaukums tāpat kā Dota 2.
Nestabili ekrānuzņēmumi ar RenderDoc un VK_EXT_shader_object
Diagrammu veidošanas rīku izmantošana pievieno savu mainīgo kopu. Ir novērots, ka Nestabilitāte ar RenderDoc tverot lietojumprogrammas, kas izmanto paplašinājumu VK_EXT_shader_objectieskaitot Atgūto draiveru avārijas, lietojumprogrammu sasalšana un pazaudētas ierīces kļūdasTas nav pārsteidzoši: mēs runājam par nesen veiktu paplašinājumu un pēc būtības delikātu situāciju (uztveršanas slāņa iekļaušana uzlabotā cauruļvadā).
Lai problēmu reproducētu konsekventi, piemērs "ēnotāju objekti» no krātuves Saša Vilemsa/VulkānsProcedūra bija šāda: Palaidiet shaderobjects.exe bināro failu zem RenderDoc, uztveriet kadru un atlasiet otro vkQueueSubmit() notikumu.. Šobrīd, parādījās kļūdas ziņojuma dialoglodziņš instrumenta.
Turklāt, lai samazinātu traucējošos faktorus, pirms uztveršanas tika noņemti: .bin faili ko ģenerē piemērs (ēnotāja kešatmiņas), un kļūda joprojām pastāv. Konkrētā vide bija: RenderDoc_2024_07_02_0406d376_64, Windows 10 (10.0.19045.4529), Vulkan 1.3.275, GeForce GTX 1080 y kontrolieris 566.12Šie dati ir ļoti noderīgi, ja ziņojat par līdzīgām problēmām vai salīdzināt tās.
Spēles un Steam avarē, un pat zili ekrāni
Tika ziņots arī par īpaši kaitinošu scenāriju: Spēle bieži avarēja, dažreiz arī Steam, un parādījās pat BSOD. (zils ekrāns). Pamata darbības, piemēram Atjauniniet draiverus, pielāgojiet grafikas kvalitāti, piespiediet pilnekrāna režīmu, atspējojiet pārklājumus y ierobežot FPS līdz 60, bet slēgšana turpinājās ik pēc dažām spēles minūtēm.
Ja vienādojumā ir iesaistīti zilie ekrāni, rodas aizdomas par nestabilitāte kodola/draivera līmenī vai pašā aparatūrāLai gan VK_ERROR_DEVICE_LOST ir Vulkan kļūda, ja visa sistēma ir nestabila, ieteicams to papildināt ar atmiņas testi, disku pārbaude un termiskā uzraudzība lai izslēgtu iespēju, ka GPU vai tā barošanas avots ir sasniedzis savu robežu.
Iespējamie cēloņi: tehniski un ikdienas

Lai gan katrs gadījums ir unikāls, ir vairāki izplatīti iemesli, kurus ir vērts apsvērt. Šeit ir karte, kas palīdzēs jums orientēties. Visizplatītākais VK_ERROR_DEVICE_LOST:
- Nestabili vai regresēti grafikas draiveriJaunākās versijas var labot dažus nosaukumus un sabojāt citus; gadās arī pretējais.
- Jauni vai mainīgi paplašinājumi: kā
VK_EXT_shader_object, kas joprojām attīstās un ar uztveršanas rīku palīdzību var atklāt perifēros gadījumus. - Pārtraukumi un TDR (Windows): Ja darbs ar GPU aizņem mūžību, sistēma var restartēt draiveri un atstāt loģisko ierīci “pazaudētu”.
- Pārklājumi un slāņiFPS inžektori, tērzēšana, straumēšana vai trasētāji var traucēt mijmaiņas ķēdei vai cauruļvadam.
- Īpašas mijmaiņas ķēdes konfigurācijasDaži prezentācijas, laika noteikšanas vai kompozīcijas režīmi var izraisīt avārijas noteiktā aparatūrā/draiveros.
- Shader kešatmiņa ir bojāta vai nav sinhronizēti: kešatmiņas notīrīšana (piemēram, .bin faili piemērā) var novērst nelielas neatbilstības.
- Aparatūra malāTemperatūra, strāvas pārspriegums vai neliela pārslodze/nepietiekams spriegums var izraisīt kļūdas periodisku parādīšanos.
Kā noteikt diagnozi, nezaudējot mieru
Pirms mainīt divdesmit lietas vienlaikus, labāk ir ievērot rīkojumu. Mērķis ir izolēt faktoru, kas izraisa VK_ERROR_DEVICE_LOST kļūdu. Jūsu konkrētajā gadījumā, paļaujoties uz signāliem, kurus varat objektīvi izmērīt vai reproducēt.
- Atveidojiet kļūdu īsā secībā: konkrēta cīņa Dota 2, izvēlne Detroitā vai tas pats tveršanas solis RenderDoc (piemēram, otrā vkQueueSubmit() atlasīšana).
- Pievērsiet uzmanību operētājsistēmas, draivera un GPU versijām.Dati, piemēram, Windows 10 būvējums 19045.4529, GeForce GTX 1080 un draiveris 566.12, palīdz salīdzināt pārskatus.
- Atspējot pārklājumus un slāņusSteam, GeForce Experience, Discord utt. Pārbaudiet, vai darbība mainās bez tiem.
- Atgriežas pie “akciju” vērtībāmNav GPU/CPU/RAM pārtaktošanas, ar noklusējuma jaudas ierobežojumiem un bez agresīvas sprieguma pazemināšanas.
- Atjaunots zem kontūras Tikai nepieciešamības gadījumā: ja RenderDoc vai līdzīgi rīki saasina problēmu, mēģiniet vispirms neuztvert attēlu.
- Notīrīt ēnotāja kešatmiņu: gan spēle, gan draiveris, ja piemērojams. Piemērā minētie .bin faili to atbalsta.
- Pārbaudiet sistēmas žurnālusOperētājsistēmā Linux — dmesg un journalctl; operētājsistēmā Windows — notikumu skatītājs un minidumps, ja rodas BSOD.
Ja procesa laikā jūs sastopaties ar soli, kurā vienmēr izraisa kļūdu (kā tas notika ar otro vkQueueSubmit ēnotāja objektu piemērā), jums jau ir puse diagnozes: mēģiniet mainīt tikai vienu mainīgo (draiveris, mijmaiņas ķēdes iestatījums, prezentācijas režīms), lai redzētu, vai trigeris pazūd.
Praktiski risinājumi un pielāgojumi, kas ir izdevušies

Nav universālas burvju nūjiņas, bet ir darbības ar labu veiksmes līmeniZemāk ir sniegta virkne pasākumu, kas sakārtoti no vismazāk uzbāzīgiem līdz visizraisošākajiem.
Windows (NVIDIA/AMD) un Vulkan spēles
- NVIDIA specifiska Detroit: Become Human spēles skaņošanaVadības panelī > Pārvaldīt 3D iestatījumus > Programmas iestatījumi > atlasiet spēles izpildāmo failu, atrodiet Vulkan/OpenGL iestatījumu un iestatiet to uz "Priekšroka slāņiem DXGI Swapchain". Tas ir novērsis atkārtotas avārijas ar RTX 3080.
- Ierobežojiet FPS un sinhronizāciju60 kadru/s un ekskluzīva pilnekrāna režīma saglabāšana var stabilizēt noteiktus draiverus, lai gan ar to vien nepietiek.
- Atspējot pārklājumusJa pamanāt uzlabojumus, atkārtoti instalējiet tos pa vienam, lai identificētu vainīgo.
- “Pazīstams labs” vadītājsJa kļūda parādās pēc atjaunināšanas, izmēģiniet iepriekšējo stabilo versiju; ja kādu laiku neesat atjauninājis, instalējiet jaunāko WHQL versiju.
Linux un vietējās spēles ar Vulkan (piemēram, Dota 2)
- Pārbaudiet grafikas steku: : Mesa/NVIDIA versija ir piemērota jūsu kodolam un videi. Versijas maiņa varētu novērst bezgalīgo ciklu.
- Pārbaudiet komponistu un logusPārbaudiet ar un bez kompoziciona, pilnekrāna un bezrāmju logu un pielāgojiet prezentācijas režīmu, ja spēle to atļauj.
- Detalizēti žurnāli: Nosakiet avārijas laiku un apskatiet dmesg/journalctl failu šajā laikā. Tiks reģistrēta GPU kļūda vai atiestatīšana.
Uztveršanas un atkļūdošanas rīki (RenderDoc)
- Izvairieties no problemātiskiem soļiemJa avāriju izraisa konkrēta notikuma (piemēram, otrā vkQueueSubmit()) atlasīšana, analīze jāveic tikai ar darbībām pirms vai pēc tā.
- Samaziniet apjukumuPirms projekta “tīro” versiju uztveršanas un izmantošanas notīriet ēnotāju kešatmiņas (piemēram, .bin kešatmiņas piemērā).
- Atjaunināt vai mainīt versijugan RenderDoc, gan draiveris/GPU; ar jauniem paplašinājumiem jaunākā versijā var būt iekļauti svarīgi labojumi.
Kad arī Steam avarē vai parādās BSOD
- Integrēta sistēma: Veic atmiņas testus, uzrauga temperatūru un pārbauda barošanas blokus. VK_ERROR_DEVICE_LOST var būt redzama dziļākas problēmas pazīme.
- Kodola līmeņa draiveriPārinstalējiet GPU draiveri tīrā veidā. Ja BSOD joprojām pastāv, apkopojiet minidump failus, lai precīzi identificētu moduli.
Mazas detaļas, kas rada atšķirību
Ir šķietami nelieli pielāgojumi, kas praksē pilnībā mainīt stabilitāti konkrēta nosaukuma. Iestatījums “Dot priekšroku slāņiem DXGI Swapchain” spēlei Detroit: Become Human ir spilgts piemērs. Šāda veida opcijas modulēt slāņu, mijmaiņas ķēdes un draivera mijiedarbībuun var apiet konkrētu kļūdu.
Vēl viena noderīga detaļa ir ēnotāja kešatmiņas notīrīšana pirms lielu izmaiņu veikšanas vai ekrānuzņēmumu analīzes, kā tas tika darīts ar .bin failiem ēnotāja objekta piemērā. Tas samazina pretrunas un vecie stāvokļi kas ievelkas starp sesijām un mākoņdiagnostikām.
Visbeidzot, kad spēle Tas neaizveras, bet paliek cilpā Pēc kļūdas tā ir norāde, ka loģiskā ierīce ir kļuvusi nelietojama, ja lietojumprogramma to pilnībā nepārvalda. Šādos gadījumos ir vērts to pārbaudīt. citi izpildes ceļi (cita aizmugursistēma, ja tāda pastāv, mainiet ekrāna režīmu vai atspējojiet papildu funkcijas, piemēram, noteiktas ēnas vai efektus), lai izvairītos no stāvokļa, kas izraisa avāriju.
Resursi Vulkan izpratnei (un labākai atkļūdošanai)
Uzzinot vairāk par Vulkan, jūs varēsiet interpretēt tādas kļūdas kā VK_ERROR_DEVICE_LOST, neiejaucoties akli. Viens kopienas dalībnieks ieteica oficiālus Khronos resursus ar iesācējiem draudzīgām pieejām un atlasītiem sarakstiem. Tie ir labs pamats neatkarīgi no tā, vai programmējat vai vienkārši vēlaties saprast, kas notiek.
- Iesācēja ceļvedis Vulkan (Khronos) lietošanā: ievadresursu krājums, kas palīdzēs jums sākt darbu un izprast API filozofiju.
- Khronos Vulkan resursi vietnē GitHub: sarakstā norādīts, ka resursi ir pārvietoti uz vulkan.org, kur atradīsiet atjauninātu dokumentāciju.
Ja nezināt, ar ko sākt, Šīs rokasgrāmatas ļaus izvairīties no izmēģinājumiem un kļūdām netīrs un sniegs jums kritērijus tādu problēmu risināšanai kā ierīces zudums, taimauti, sinhronizācijas problēmas un citas.
Kopienas signāli: mijiedarbība un komentāri
Papildus detalizētiem ziņojumiem bija arī viegla mijiedarbība, piemēram, “Patīk” komentārā un sarunās, kurās viņiem tika jautāts mācību resursiLai gan tās šķiet sīkas detaļas, tās atspoguļo, ka tēma ir dzīvs un kopīgsun ka daudzi risinājumi rodas no pieredzes summas.
Ātrs kontrolsaraksts jūsu lietai
Ja tas ar jums notiek tieši tagad, izmēģiniet šo. īss pārbaužu saraksts, iedvesmojoties no iepriekšējām lietām:
- Draivera atjaunināšana vai atiestatīšanaJa tikko veicāt atjaunināšanu un tā sāka nedarboties, izmēģiniet iepriekšējo stabilo versiju; ja vairākus mēnešus neesat veicis atjaunināšanu, instalējiet jaunāko WHQL versiju.
- Atspējot pārklājumus: Steam, Discord, GeForce Experience utt. un pārbaudiet, vai kļūdas biežums mainās.
- NVIDIA regulēšana katrai spēleiSpēlē Detroit: Become Human avārijas tika novērstas, iestatot Vulkan/OpenGL iestatījumu uz “Prefer Layers in DXGI Swapchain”.
- Ekrāna režīms un FPS: Piespiedu kārtā ieslēdziet pilnekrāna režīmu un mēreni ierobežojiet kadru ātrumu sekundē (FPS), lai stabilizētu renderēšanas rindas.
- Notīrīt ēnotāja kešatmiņu: Dzēš spēles kešatmiņas failus un, ja piemērojams, draiveri.
- Sistēmas žurnālidmesg/journalctl operētājsistēmā Linux vai Event Viewer operētājsistēmā Windows, lai noteiktu draiveru atiestatīšanu vai kļūdas.
Kad ziņot un kas tajā jāiekļauj
Ja problēma joprojām pastāv, neskatoties uz visu, ziņojiet par to precīza informācija Paātriniet palīdzības sniegšanu. Izvairieties no ieraksta “Nav atbilžu” galvenajos laukos: iekļaujiet Spēles ID un laika zīmogs Ja tā ir spēle ar atkārtojumiem, pievienojiet ekrānuzņēmumi vai žurnāli kad vien iespējams.
Neaizmirstiet pievienot pilnīga tehniskā videOS versija (piemēram, Windows 10 būvējums 19045.4529), Precīzs GPU (GeForce GTX 1080, RTX 3080), draivera versija (piemēram, 566.12) un vai izmantojat tādus rīkus kā RenderDoc, tā betona versija (piemēram, RenderDoc_2024_07_02_0406d376_64). Šo datu reproducēšana ir vērtīga.
Bieži uzdotie jautājumi
Kāpēc spēle pēc kļūdas neavarē un vienkārši atkārtojas? Jo lietojumprogramma nonāk stāvoklī, kurā loģiskā ierīce ir pazaudēta, bet izejas loģika netiek pilnībā izpildīta. Praksē, jums ir jāpiespiež slēgšana un pārbaudiet, kāds notikums vai iestatījums aktivizē šo stāvokli.
Vai shader kešatmiņas notīrīšana palīdz? Vairākos gadījumos jā, īpaši, ja ir neatbilstības starp versijām un kešatmiņām (tāpat kā .bin faili ēnotāja objektu piemērā). Šis ir ātrs veids, kā atbrīvoties no bojātiem stāvokļiem.
Vai man vajadzētu uztvert datus ar RenderDoc, ja man ir aizdomas par draiveri? Uztveršanas kanna palīdzēt izprast cauruļvadu, taču tas var radīt arī nestabilitāti, ja paplašinājums vai draiveris ir zaļš. Vispirms pārbaudiet bez datu tveršanas, un, ja jūs to darāt, dariet to ar rīka versijām. ka tu zini, ka stabils jūsu gadījumam.
Vai pārklājumi var izraisīt VK_ERROR_DEVICE_LOST? Jā, dažreiz, Injicētie slāņi traucē mijmaiņas ķēdi vai ar sinhronizāciju. To atspējošana ir viens no pirmajiem veicamajiem testiem.
Ko darīt, ja es redzu arī BSOD operētājsistēmā Windows? Tas liek domāt problēmas kodola/draivera vai aparatūras līmenīPapildus Vulkan darbībām tā veic atmiņas testus, pārbauda temperatūru, pārbauda barošanas bloku un analizē minidumpus, lai atrastu bojāto moduli.
Jums ir skaidrs ceļvedis: Identificējiet modeli, izolējiet sprūdu un veiciet korekcijas ar pierādītu efektivitātiSākot ar iepriekš iestatītajām izmaiņām NVIDIA vadības panelī, kas saglabāja spēles Detroit: Become Human uz RTX 3080, līdz RenderDoc uztveršanas vadlīnijām un uzraudzības žurnāliem Linux sistēmā Dota 2, ir konkrēti risinājumi, kas ievērojami samazina VK_ERROR_DEVICE_LOST tipa avārijas. Ja arī paļaujaties uz Khronos resursiem, lai izprastu Vulkan pamatprincipus, katrs mēģinājums būs precīzāks un jūs tērēsiet mazāk laika aklajiem testiem.
Kopš mazotnes aizrautīgs ar tehnoloģijām. Man patīk būt lietas kursā šajā nozarē un, galvenais, par to informēt. Tāpēc jau daudzus gadus esmu veltīts komunikācijai tehnoloģiju un videospēļu vietnēs. Jūs varat atrast mani rakstot par Android, Windows, MacOS, iOS, Nintendo vai jebkuru citu saistīto tēmu, kas jums ienāk prātā.