- VK_ERROR_DEVICE_LOST viitab tavaliselt draiveri lähtestamisele või swapchaini tõrkele.
- Mängupõhised muudatused (näiteks kihiline DXGI vahetusahel) võivad mänge stabiliseerida.
- Uued laiendused (nt varjutusobjektid) suurendavad jäädvustamise ohtu.
- Täpsed operatsioonisüsteemi/draiveri versioonid ja logid on taasesitamiseks ja parandamiseks võtmetähtsusega.
Kui olete märganud teadet VK_ERROR_DEVICE_LOST Vulkaniga mänge mängides või rakendusi disainides pole te üksi: see on levinud probleem, mis võib avalduda krahhidena, ootamatute sulgemistena või isegi tsüklitena, kus programm ei sulgu täielikult. Kuigi see on hirmutav, on sellel tavaliselt seletus ja mis kõige tähtsam, viisid selle leevendamiseks või lahendamiseks.
Sellest juhendist leiate Reaalsed juhtumid Windowsis ja Linuxis koos mängude ja tööriistadega, vihjeid allika diagnoosimiseks, sätteid, mis on aidanud teisi kasutajaid (näiteks konkreetne säte NVIDIA juhtpaneelil mängu Detroit: Become Human jaoks RTX 3080-ga) ja Usaldusväärsed ressursid Vulkani paremaks mõistmiseksIdee seisneb selles, et te ei raiska aega foorumite vahel hüppamisele ja teil on kohe näha lahendusi, millel on tõeliselt potentsiaali. Uurime kõike selle kohta, mida... viga VK_ERROR_DEVICE_LOST.
Mida tähendab VK_ERROR_DEVICE_LOST ja miks see kuvatakse?
Vulkanis näitab VK_ERROR_DEVICE_LOST viga seda, et loogiline seade on lakanud töötamast: GPU draiver on taaskäivitanud, draiver hangus, blokeerimise või järjekorra ajalõpu tõttu tekkis TDR või rakendus saatis midagi, millega riistvara/draiver hakkama ei saanud. See ei lõpe alati krahhiga; mõnikord, nagu näeme, rakendus jääb tsüklisse kinni ja tuleb jõuga sulgeda.
Kuigi muster varieerub olenevalt seadmetest ja tarkvarast, on tavalised päästikud järgmised Ebastabiilsed draiverid, väga uued laiendused, kihid/ülekatted, süsteemi ajapiirangud ja mõnikord lihtsalt ebaõnnestunud graafikasätete kombinatsioonid. Mõne reaalse elu juhtumi tundmine aitab probleemi taasesitada ja lahendada.
Pärisjuhtumid: mis juhtus ja mida tehti

Detroit: Become Human Windowsi, RTX 3080 ja otsustava muudatuse peal NVIDIA-s
Kasutaja, kellel on GeForce RTX 3080 mäng jooksis pidevalt kokku VK_ERROR_DEVICE_LOST veateatega, hoolimata tüüpilistest toimingutest: Draiverite värskendamine, ühilduvusrežiimi testimine ja valikute ülevaatamineMinu jaoks toimis lahendus nii, et pidin minema NVIDIA juhtpaneelile ja muutma programmi tasandil Vulkani/OpenGL-iga seotud eelistust.
Teisisõnu, marsruut oli järgmine: NVIDIA juhtpaneel > 3D-sätete haldamine > Programmi sätted > valige Detroit: Become HumanVulkani/OpenGL-i eelseadistatud meetodi valikus oli määranguks "Eelistatakse kihtide kaupa DXGI Swapchainis«. Selle muutusega korduvad sulgemised kadusid seotud VK_ERROR_DEVICE_LOST-iga.
See näide illustreerib, et mõnikord, ühilduvuse kohandamine või vahetusahela haldamine Kihtide puhul võib see olla võtmetähtsusega, eriti kui pealkirjal on kindel renderdamistoru või kui toimub interaktsioon süsteemi teiste kihtidega.
Dota 2 Linuxis: tsükliline ja pealtnäha juhuslik ebastabiilsus
Teine oluline juhtum on see, et Dota 2 töötab Linuxis natiivseltTeatatud muster oli hämmastav: VK_ERROR_DEVICE_LOST viga ilmus nii reaalajas mängude ajal kui ka korduste vaatamisel, mõnikord lihtsalt ... kakluse vaatamine või isegi vestluses kirjutamineTäieliku sulgumise asemel jäi mäng samaks. Lõputu silmus ja see tuli käsitsi "tappa".
Selles konkreetses kogemuses ei tehtud mingeid panuseid Matši ID-d ega ekraanipilte pole (Mõlemas väljal oli märgitud „Vastus puudub”), mis raskendab täpsete hetkede seostamist. Sellegipoolest viitab sümptom (tardumine ilma täieliku kokkuvarisemiseta) taastamatu seadme olek rakenduse vaatenurgast. Linuxis võib see muster olla seotud draiveri, esitlusjärjekorra ja ajastuse haldamisega või mõningast helilooja/graafilise keskkonna interaktsiooni.
Sellistel juhtudel on soovitatav üle vaadata süsteemilogid (dmesg, journalctl), kontrollige Mesa/NVIDIA versioone olenevalt graafikaprotsessorist ja keelake kolmanda osapoole kihid. Need on üldised näpunäited, mis muutuvad oluliseks renderdamisintensiivne Vulkani mäng nagu Dota 2-s.
Ebastabiilsed ekraanipildid RenderDoci ja VK_EXT_shader_objectiga
Joonestusvahendite kasutamine lisab oma muutujate komplekti. On täheldatud, et RenderDoci ebastabiilsused laiendust kasutavate rakenduste jäädvustamisel VK_EXT_shader_object, kaasa arvatud Taastatud draiveri krahhid, rakenduste hangumised ja seadme kadumise veadSee pole üllatav: me räägime hiljutisest laiendusest ja oma olemuselt delikaatsest olukorrast (hõivekihi ühendamine täiustatud torujuhtmega).
Probleemi järjepidevaks reprodutseerimiseks näide "varjutusobjektid» hoidlast Sascha Willems/VulkanProtseduur oli järgmine: Käivita RenderDoci all binaarfail shaderobjects.exe, jäädvusta kaader ja vali teine vkQueueSubmit() sündmus.. Sel momendil, Ilmus veateate dialoogiboks tööriista.
Lisaks eemaldati segavate tegurite vähendamiseks enne püüdmist järgmised andmed: .bin-failid mida näide genereerib (shaderi vahemälud) ja viga ikkagi ilmnes. Konkreetne keskkond oli: RenderDoc_2024_07_02_0406d376_64, Windows 10 (10.0.19045.4529), Vulkan 1.3.275, GeForce GTX 1080 y juht 566.12See teave on väga kasulik sarnaste probleemide aruandlusel või võrdlemisel.
Mängud ja Steam jooksevad kokku ja isegi sinised ekraanid
Samuti teatati eriti tüütust stsenaariumist: Mäng jooksis sageli kokku, vahel ka Steam, ja ilmus isegi BSOD. (sinine ekraan). Põhilised toimingud, näiteks Draiverite värskendamine, graafikakvaliteedi reguleerimine, täisekraanirežiimi sundimine, ülekatete keelamine y piira kaadrisagedust 60-ni, aga sulgemised jätkusid iga mängu paari minuti tagant.
Kui võrrandisse on kaasatud sinised ekraanid, siis kahtlus ebastabiilsus kerneli/draiveri tasandil või riistvaras endasKuigi VK_ERROR_DEVICE_LOST on Vulkani viga, on kogu süsteemi ebastabiilsuse korral soovitatav seda täiendada järgmisega: mälutestid, kettakontroll ja termiline jälgimine et välistada GPU või selle toiteallika piiril olemise võimalus.
Võimalikud põhjused: tehnilised ja igapäevased

Kuigi iga juhtum on ainulaadne, on mitmeid levinud põhjuseid, mida tasub kaaluda. Siin on kaart, mis aitab teil orienteeruda. Kõige levinum VK_ERROR_DEVICE_LOST-is:
- Ebastabiilsed või halvenenud graafikadraiveridUuemad versioonid võivad mõningaid mänge parandada ja teisi katki teha; juhtub ka vastupidist.
- Uued või muutuvad laiendused: as
VK_EXT_shader_object, mis on alles küpsemas faasis ja suudab jäädvustamisvahenditega servajuhtumeid paljastada. - Aegumistähtajad ja TDR (Windows): Kui GPU-ga töötamine võtab igavesti kaua aega, võib süsteem draiveri taaskäivitada ja loogilise seadme „kaotada“.
- Katted ja kihidFPS-i injektorid, vestlus, voogesitus või jälgijad võivad vahetusahelat või torujuhet häirida.
- Konkreetsed vahetusahela konfiguratsioonidTeatud esitlus-, ajastus- või kompositsioonirežiimid võivad teatud riist- ja tarkvaradraiverite puhul krahhe esile kutsuda.
- Varjundaja vahemälu on rikutud või sünkroonist väljas: vahemälude tühjendamine (nagu näites olevad .bin-failid) võib eemaldada peeneid vastuolusid.
- Riistvara servalTemperatuurid, voolutõusud või kerge ülekiirendamine/alapinge võivad põhjustada vea vahelduvat ilmumist.
Kuidas diagnoosi panna ilma enesekontrolli kaotamata
Enne kahekümne asja korraga muutmist on parem järgida käsku. Eesmärk on isoleerida tegur, mis käivitab VK_ERROR_DEVICE_LOST vea. Teie konkreetsel juhul tuginedes signaalidele, mida saate objektiivselt mõõta või taasesitada.
- Paljunda viga lühikese järjestusega: konkreetne võitlus Dota 2-s, menüü Detroitis või sama püüdmisetapp RenderDocis (nt teise vkQueueSubmit() valimine).
- Pange tähele operatsioonisüsteemi, draiveri ja GPU versioone.Andmed, näiteks Windows 10 järk 19045.4529, GeForce GTX 1080 ja draiver 566.12, aitavad aruandeid võrrelda.
- Keela pealiskihid ja kihidSteam, GeForce Experience, Discord jne. Kontrollige, kas käitumine muutub ilma nendeta.
- Tagasi „aktsiaväärtuste” juurdeGPU/CPU/RAM-i ülekiirendamine puudub, vaikimisi energiatarbimise piirangud ja agressiivse alapinge puudumine.
- Taasloob jälgimise all Ainult vajadusel: kui RenderDoc või sarnased tööriistad probleemi süvendavad, proovige ilma jäädvustamiseta.
- Tühjenda varjutaja vahemälu: nii mäng kui ka draiver, kui see on kohaldatav. Näites olevad .bin-failid toetavad seda.
- Kontrollige süsteemilogisidLinuxis dmesg ja journalctl; Windowsis sündmustevaatur ja minidump'id, kui esineb BSOD.
Kui protsessi käigus puutute kokku sammuga, mis põhjustab alati vea (nagu see juhtus varjutusobjektide näites teise vkQueueSubmitiga), on teil juba pool diagnoosi olemas: proovige muuda ainult ühte muutujat (draiver, swapchaini seadistus, esitlusrežiim), et näha, kas päästik kaob.
Praktilised lahendused ja kohandused, mis on toiminud

Universaalset võlukeppi pole olemas, aga on olemas hea edumääraga toimingudAllpool on toodud meetmete seeria, mis on järjestatud kõige vähem pealetükkivast kuni kõige pealetükkivamani.
Windowsi (NVIDIA/AMD) ja Vulkani mängud
- NVIDIA-spetsiifiline häälestamine Detroit: Become HumanileValige juhtpaneelil > 3D-sätete haldamine > programmi sätted > mängu käivitatav fail, leidke Vulkan/OpenGL-i eelseadistus ja määrake see väärtuseks „Eelista kihte DXGI vahetusahelal”. See on RTX 3080 korduvate krahhide ärahoidmiseks.
- Piiratud FPS ja sünkroniseerimine60 kaadrit sekundis ja eksklusiivse täisekraanirežiimi säilitamine võib teatud draivereid stabiliseerida, kuigi sellest üksi alati ei piisa.
- Keela pealiskihid: Steam, NVIDIA, Discord jne. Kui märkate paranemist, sisestage need ükshaaval uuesti, et süüdlane tuvastada.
- "Tuntud hea" juhtKui viga ilmneb pärast värskendamist, proovige eelmist stabiilset versiooni; kui te pole mõnda aega värskendanud, installige uusim WHQL-i versioon.
Linux ja Vulkaniga loodud natiivmängud (nt Dota 2)
- Kontrollige graafikapakki: : Mesa/NVIDIA versioon, mis sobib teie kerneli ja keskkonnaga. Versioonimuutus võib lõpmatu tsükli lahendada.
- Kontrollige heliloojat ja aknaidTesti komposiitoriga ja ilma, täisekraani ja ääristeta akna režiimi ning kohanda esitlusrežiimi, kui mäng seda võimaldab.
- Logid detailselt: Tuvastage krahhi aeg ja vaadake sel ajal faili dmesg/journalctl. GPU viga või lähtestamine logitakse.
Jäädvustamis- ja silumistööriistad (RenderDoc)
- Väldi problemaatilisi sammeKui konkreetse sündmuse (näiteks teise vkQueueSubmit()) valimine krahhi käivitab, piirake analüüsi sellele eelnevate või järgnevate sammudega.
- Vähendage segadustTühjenda varjundajate vahemälud (nagu näites olevad .bin-laiendiga omad) enne projekti „puhaste” versioonide jäädvustamist ja kasutamist.
- Värskenda või muuda versiooni: nii RenderDoc kui ka draiver/GPU; uute laiendustega võib uuem versioon sisaldada olulisi parandusi.
Kui ka Steam jookseb kokku või ilmub BSOD
- Süsteemi terviklikkus: Käivitab mäluteste, jälgib temperatuure ja kontrollib toiteplokke. VK_ERROR_DEVICE_LOST võib olla nähtav sümptom sügavamale probleemile.
- Kerneli tasemel draiverid: Paigalda GPU draiver uuesti ja eemalda viga. Kui BSOD püsib, kogu minidump-faile, et moodul täpselt tuvastada.
Väikesed detailid, mis muudavad
On pealtnäha väikeseid kohandusi, mis praktikas toimivad, muuta stabiilsust täielikult konkreetse pealkirja puhul. Hea näide on Detroit: Become Humani säte „Eelista kihte DXGI vahetusahelas”. Seda tüüpi valikud moduleerida kihtide, vahetusahela ja draiveri omavahelist suhtlustja saab konkreetsest veast mööda hiilida.
Veel üks kasulik detail on varjutaja vahemälu tühjendamine enne suuremate muudatuste tegemist või ekraanipiltide analüüsimist, nagu tehti varjutusobjekti näites .bin-failidega. See vähendab vastuolud ja vanad riigid mis seansside ja pilvediagnostikate vahel venivad.
Lõpuks, kui mäng See ei sulgu, vaid jääb tsüklisse Pärast viga on vihje, et loogiline seade on muutunud kasutuskõlbmatuks ilma, et rakendus seda täielikult haldaks. Sellistel juhtudel tasub seda testida. muud täitmisviisid (erinev taustsüsteem, kui see on olemas, ekraanirežiimi muutmine või lisafunktsioonide, näiteks teatud varjude või efektide keelamine), et vältida krahhi põhjustavat olekut.
Ressursid Vulkani mõistmiseks (ja paremaks silumiseks)
Vulkani kohta lisateabe saamine aitab teil selliseid vigu nagu VK_ERROR_DEVICE_LOST tõlgendada ilma pimesi sekkumata. Üks kogukonnaliige soovitas ametlikke Khronose ressursse algajatele sobivate lähenemisviiside ja kureeritud nimekirjadega. Nad on hea alus olenemata sellest, kas sa programmeerid või tahad lihtsalt aru saada, mis toimub.
- Vulkani (Khronos) algajate juhend: sissejuhatavate ressursside kogu, mis aitab teil alustada ja mõista API filosoofiat.
- Khronos Vulkani ressursid GitHubis: loend näitab, et ressursid on teisaldatud kohta vulkan.org, kust leiate ajakohastatud dokumentatsiooni.
Kui sa ei tea, kust alustada, Need juhendid säästavad teid katse-eksituse meetoditest räpane ja annab teile kriteeriumid selliste probleemide lahendamiseks nagu seadme kadumine, ajalõpud, sünkroonimisprobleemid ja muu.
Kogukonna signaalid: suhtlus ja kommentaarid
Lisaks detailsetele aruannetele oli ka kerged suhtlused, näiteks "Meeldib" kommentaarides ja vestlustes, kus neilt küsiti õppematerjalidKuigi need tunduvad väikeste detailidena, peegeldavad need, et teema on elus ja jagatudja et paljud lahendused sünnivad kogemuste summast.
Kiire kontroll-leht teie juhtumi jaoks
Kui see sinuga praegu juhtub, proovi seda. lühike kontrollide nimekiri, inspireerituna varasematest juhtumitest:
- Draiveri värskendamine või varasemale versioonile tagasipööramineKui sa just uuendasid ja see hakkas ebaõnnestuma, proovi eelmist stabiilset versiooni; kui sa pole kuid uuendanud, installi uusim WHQL.
- Keela pealiskihid: Steam, Discord, GeForce Experience jne ja vaata, kas vea sagedus muutub.
- NVIDIA häälestamine mängu kohtaMängus Detroit: Become Human lahendas krahhid Vulkani/OpenGL-i eelseadistuse määramine valikule „Eelista kihte DXGI vahetusahelas“.
- Ekraanirežiim ja FPS: Renderdamisjärjekordade stabiliseerimiseks sunnib see eksklusiivse täisekraanirežiimi ja piirab mõõdukalt kaadrisagedust (FPS).
- Tühjenda varjutaja vahemälud: Kustutab mängu vahemälufailid ja vajadusel draiveri.
- Süsteemi logidDraiverite lähtestuste või vigade tuvastamiseks käsku dmesg/journalctl Linuxis või sündmustevaaturit Windowsis.
Millal esitada aruanne ja mida see peaks sisaldama
Kui probleem kõigest hoolimata püsib, teatage sellest Täpne teave Kiirendage abi. Vältige võtmeväljadel teksti „Vastusi pole”: lisage Mängu ID ja ajatempel Kui tegemist on kordusmänguga, siis lisage ekraanipildid või logid kui see on võimalik.
Ärge unustage lisada täielik tehniline keskkondOperatsioonisüsteemi versioon (nt Windows 10 järk 19045.4529), Täpne graafikakaart (GeForce GTX 1080, RTX 3080), draiveri versioon (nt 566.12) ja kas kasutate tööriistu nagu RenderDoc, selle konkreetne versioon (nt RenderDoc_2024_07_02_0406d376_64). Nende andmete reprodutseerimine on hindamatu väärtusega.
Preguntas frecuentes
Miks mäng pärast vea ilmumist kokku ei jookse ja lihtsalt tsüklisse jääb? Kuna rakendus siseneb olekusse, kus loogiline seade on kadunud, kuid väljundloogikat ei teostata täielikult. Praktikas sa pead sulgemise sundima ja kontrollige, milline sündmus või säte selle oleku käivitab.
Kas varjutaja vahemälu tühjendamine aitab? Mitmel juhul jah, eriti kui on olemas ebakõlad ehituste ja vahemälude vahel (nagu .bin-failid varjutusobjektide näites). See on kiire viis rikutud olekute eemaldamiseks.
Kas peaksin draiveri kahtluse korral jäädvustama RenderDociga? Jäädvustuskann aidata torujuhtmest aru saada, kuid see võib põhjustada ka ebastabiilsust, kui laiendus või draiver on roheline. Testige esmalt ilma jäädvustamiseta ja kui jäädvustate, tehke seda tööriista versioonidega. et sa tead stabiilset teie juhtumi jaoks.
Kas ülekatted võivad põhjustada VK_ERROR_DEVICE_LOST? Jah, mõnikord on süstitud kihid segavad vahetusahelat või sünkroniseerimisega. Nende keelamine on üks esimesi teste, mida teha.
Mis saab siis, kui näen Windowsis ka BSOD-i? See viitab probleemid kerneli/draiveri või riistvara tasandilLisaks Vulkani sammudele teeb see mäluteste, kontrollib temperatuure, kontrollib toiteplokki ja analüüsib minidumpe, et leida vigane moodul.
Teil on selge tegevuskava: Tuvastage muster, isoleerige päästik ja rakendage tõestatud efektiivsusega kohandusiAlates NVIDIA juhtpaneeli eelseadistatud muudatusest, mis salvestas mänge Detroit: Become Human RTX 3080-l, kuni RenderDoci jäädvustamisjuhiste ja Dota 2 Linuxi jälgimislogideni on olemas konkreetsed lahendused, mis vähendavad oluliselt VK_ERROR_DEVICE_LOST-tüüpi krahhe. Kui tuginete ka Khronose ressurssidele Vulkani aluste mõistmiseks, iga katse on täpsem ja raiskate pimetestidele vähem aega.
Kirglik tehnoloogia vastu väiksest peale. Mulle meeldib sektoriga kursis olla ja ennekõike sellest teavitada. Seetõttu olen aastaid pühendunud suhtlemisele tehnoloogia- ja videomängude veebisaitidel. Võite leida mind kirjutamas Androidi, Windowsi, MacOS-i, iOS-i, Nintendo või mõne muu sarnase teema kohta, mis meelde tuleb.
