- VK_ERROR_DEVICE_LOST innebærer vanligvis en tilbakestilling av driveren eller en feil med swapchain.
- Justeringer per spill (som lagdelt DXGI Swapchain) kan stabilisere titler.
- Nye utvidelser (f.eks. shader-objekter) øker risikoen for opptak.
- Nøyaktige OS-/driverversjoner og logger er nøkkelen til å reprodusere og fikse.
Hvis du har fått meldingen VK_ERROR_DEVICE_LOST Når du spiller spill eller designer applikasjoner med Vulkan, er du ikke alene: det er et vanlig problem som kan manifestere seg som krasj, uventede avslutninger eller til og med løkker der programmet ikke lukkes helt. Selv om det er skremmende, har det vanligvis en forklaring og, viktigst av alt, måter å redusere eller løse det på.
I denne guiden finner du Ekte eksempler på Windows og Linux, med spill og verktøy, ledetråder for å diagnostisere kilden, innstillinger som har hjulpet andre brukere (som en spesifikk innstilling i NVIDIA-kontrollpanelet for Detroit: Become Human with an RTX 3080), og Pålitelige ressurser for å bedre forstå VulkanTanken er at du ikke kaster bort tid på å hoppe fra forum til forum, og at du i stedet får et raskt overblikk over løsningene som virkelig har muligheter. La oss lære alt om feilen VK_ERROR_DEVICE_LOST.
Hva betyr VK_ERROR_DEVICE_LOST, og hvorfor vises det?
I Vulkan indikerer VK_ERROR_DEVICE_LOST-feilen at den logiske enheten har sluttet å virkeGPU-driveren har startet den på nytt, det oppsto en driverlåsing, en TDR oppstod på grunn av blokkering eller køtidsavbrudd, eller applikasjonen sendte noe som maskinvaren/driveren ikke kunne håndtere. Det ender ikke alltid med et krasj; noen ganger, som vi skal se, applikasjonen sitter fast i en løkke og må lukkes med makt.
Selv om mønsteret varierer avhengig av utstyr og programvare, er de vanlige utløserne Ustabile drivere, veldig nye utvidelser, lag/overlegg, systemtidsbegrensninger og noen ganger bare uheldige kombinasjoner av grafikkinnstillinger. Å kjenne til noen eksempler fra virkeligheten hjelper med å reprodusere og løse problemet.
Ekte tilfeller: hva som skjedde og hva som ble gjort

Detroit: Become Human på Windows, RTX 3080 og en avgjørende justering hos NVIDIA
En bruker med en GeForce RTX 3080 opplevde stadig spillkrasj med VK_ERROR_DEVICE_LOST til tross for at jeg gjorde det typiske: Oppdater drivere, test kompatibilitetsmodus og se gjennom alternativerLøsningen som fungerte for meg var å gå til NVIDIA-kontrollpanelet og endre en spesifikk preferanse knyttet til Vulkan/OpenGL på programnivå.
Ruten, formulert på en annen måte, var: NVIDIA Kontrollpanel > Administrer 3D-innstillinger > Programinnstillinger > velg Detroit: Become HumanI forhåndsinnstilt metode for Vulkan/OpenGL var innstillingen som gjorde forskjellen å sette den til "Foretrekker lagvis i DXGI Swapchain«. Med den endringen, gjentatte nedleggelser forsvant assosiert med VK_ERROR_DEVICE_LOST.
Dette eksemplet illustrerer at noen ganger, en kompatibilitetsjustering eller hvordan swapchain administreres Med lag kan det være nøkkelen, spesielt når tittelen har en bestemt gjengivelsespipeline eller når det er interaksjon med andre lag i systemet.
Dota 2 på Linux: Looping og tilsynelatende tilfeldig ustabilitet
En annen viktig sak er den av Dota 2 kjører innebygd på LinuxDet rapporterte mønsteret var forvirrende: VK_ERROR_DEVICE_LOST-feilen dukket opp både under kamper i sanntid og når man så på repriser, noen ganger ganske enkelt ved å å se på en kamp eller til og med skrive i chattenI stedet for å stenge helt, forble kampen i en Uendelig løkke og måtte «drepes» manuelt.
I den spesifikke opplevelsen ble det ikke gitt noen bidrag Ingen kamp-ID eller skjermbilder («Ingen respons» ble angitt i begge feltene), noe som gjør det vanskelig å korrelere nøyaktige øyeblikk. Likevel peker symptomet (frysing uten fullstendig krasj) på en uopprettelig enhetstilstand fra applikasjonsperspektivet. I Linux kan dette mønsteret være relatert til driveren, presentasjonskøen og tidsstyring, eller noe interaksjon mellom komponist og grafisk miljø.
I slike tilfeller er det lurt å gjennomgå systemlogger (dmesg, journalctl), sjekk Mesa/NVIDIA-versjoner avhengig av GPU-en, og deaktiver tredjepartslag. Dette er tips som, selv om de er generiske, blir relevante i en gjengivelsesintensiv Vulkan-tittel som Dota 2.
Ustabile skjermbilder med RenderDoc og VK_EXT_shader_object
Bruk av plottverktøy legger til sitt eget sett med variabler. Det har blitt observert Instabiliteter med RenderDoc når du tar opp applikasjoner som bruker utvidelsen VK_EXT_shader_objectinkludert Gjenopprettede driverkrasj, programfrysing og feil etter tap av enheterDet er ikke overraskende: vi snakker om en nylig utvidelse og en iboende delikat situasjon (poding av et opptakslag i en avansert pipeline).
For å gjengi problemet konsekvent, eksemplet "shaderobjekter» fra arkivet til Sascha Willems/VulkanFremgangsmåten var: Kjør shaderobjects.exe-binærfilen under RenderDoc, fang en ramme og velg den andre vkQueueSubmit()-hendelsen.. I det øyeblikket, Dialogboksen for feilrapportering dukket opp av verktøyet.
I tillegg, for å redusere forstyrrende faktorer, ble følgende fjernet før registrering: .bin-filer som eksemplet genererer (shader-cacher), og feilen oppstod fortsatt. Det spesifikke miljøet var: RenderDoc_2024_07_02_0406d376_64, Windows 10 (10.0.19045.4529), Vulkan 1.3.275, GeForce GTX 1080 y driver 566.12Disse dataene er svært nyttige hvis du rapporterer eller sammenligner lignende problemer.
Spill- og Steam-krasj, og til og med blåskjermer
Et spesielt irriterende scenario ble også rapportert: Spillet krasjet ofte, noen ganger også Steam, og til og med en BSOD dukket opp. (blå skjerm). Grunnleggende handlinger som Oppdater drivere, juster grafikkkvaliteten, tving frem fullskjermmodus, deaktiver overlegg y begrens FPS til 60, men avslutningene fortsatte med noen minutters mellomrom i kampen.
Når blåskjermer er involvert i ligningen, mistanken om ustabilitet på kjerne-/drivernivå eller i selve maskinvarenSelv om VK_ERROR_DEVICE_LOST er en Vulkan-feil, er det lurt å supplere med [feil] hvis hele systemet er ustabilt. minnetester, disksjekk og termisk overvåking for å utelukke at GPU-en eller strømforsyningen har nådd grensen.
Mulige årsaker: tekniske og hverdagslige

Selv om hvert tilfelle er unikt, finnes det en rekke vanlige årsaker som er verdt å vurdere. Her er et kart som kan hjelpe deg med å navigere. Det vanligste i VK_ERROR_DEVICE_LOST:
- Ustabile eller regredierte grafikkdrivereNyere versjoner kan fikse noen titler og ødelegge andre; det motsatte skjer også.
- Nye eller endrede utvidelser: som
VK_EXT_shader_object, som fortsatt er under modning og kan eksponere kanttilfeller med fangstverktøy. - Timeouts og TDR (Windows): Hvis en jobb på GPU-en tar en evighet, kan systemet starte driveren på nytt og la den logiske enheten gå «tapt».
- Overlegg og lagFPS-injektorer, chat, strømming eller sporingsprogrammer kan forstyrre swapchain eller pipeline.
- Spesifikke swapchain-konfigurasjonerEnkelte presentasjons-, timing- eller komposisjonsmoduser kan utløse krasj på spesifikk maskinvare/drivere.
- Shader-cache ødelagt eller ute av synkronisering: tømming av mellomlagringer (som .bin-filene i eksemplet) kan fjerne subtile inkonsekvenser.
- Maskinvare på kantenTemperaturer, strømstøt eller lett overklokking/underspenning kan føre til at feilen vises periodisk.
Hvordan stille en diagnose uten å miste roen
Før du endrer tjue ting samtidig, er det bedre å følge en ordre. Målet er å isolere faktoren som utløser VK_ERROR_DEVICE_LOST I ditt spesifikke tilfelle, å stole på signaler som du objektivt kan måle eller reprodusere.
- Gjenskap feilen i en kort sekvensen spesifikk kamp i Dota 2, en meny i Detroit, eller det samme fangsttrinnet i RenderDoc (f.eks. å velge den andre vkQueueSubmit()).
- Merk deg versjonene av operativsystem, driver og GPU.Data som Windows 10 build 19045.4529, GeForce GTX 1080 og driver 566.12 hjelper med å sammenligne rapporter.
- Deaktiver overlegg og lag: Steam, GeForce Experience, Discord, osv. Sjekk om oppførselen endres uten dem.
- Returnerer til «lager»-verdierIngen GPU/CPU/RAM-overklokking, med standard strømgrenser og ingen aggressiv underspenning.
- Gjenskaper under sporing Kun hvis nødvendig: Hvis RenderDoc eller lignende verktøy forverrer problemet, prøv uten å ta opp først.
- Tøm shader-bufferenbåde spillet og driveren, hvis aktuelt. .bin-filene i eksemplet støtter dette.
- Sjekk systemloggerPå Linux, dmesg og journalctl; på Windows, hendelsesvisning og minidumps hvis det er en BSOD.
Hvis du i prosessen kommer over et trinn som fører alltid til feilen (slik det skjedde med den andre vkQueueSubmit i eksemplet med shaderobjekter), har du allerede en halv diagnose: prøv endre bare én variabel (driver, swapchain-innstilling, presentasjonsmodus) for å se om utløseren forsvinner.
Praktiske løsninger og justeringer som har fungert

Det finnes ingen universell tryllestav, men det finnes tiltak med god suksessrateNedenfor er en rekke tiltak sortert fra minst til mest inngripende.
Windows-spill (NVIDIA/AMD) og Vulkan-spill
- NVIDIA-spesifikk tuning for Detroit: Become HumanI Kontrollpanel > Administrer 3D-innstillinger > Programinnstillinger > velg den kjørbare spillets fil, finn forhåndsinnstillingen Vulkan/OpenGL og sett den til «Foretrekk lag på DXGI Swapchain». Dette har eliminert gjentatte krasj med RTX 3080.
- Begrens FPS og synkroniseringÅ opprettholde 60 FPS og eksklusiv fullskjerm kan stabilisere visse drivere, selv om det ikke alltid er tilstrekkelig alene.
- Deaktiver overlegg: Steam, NVIDIA, Discord, osv. Hvis du merker forbedring, introduser dem på nytt én etter én for å identifisere synderen.
- «Kjent god» sjåførHvis feilen dukker opp etter oppdatering, kan du prøve en tidligere stabil versjon. Hvis du ikke har oppdatert på en stund, kan du installere den nyeste WHQL-versjonen.
Linux og native titler med Vulkan (f.eks. Dota 2)
- Sjekk grafikkstakkenMesa/NVIDIA-versjonen er passende for kjernen og miljøet ditt. En versjonsoppdatering kan fikse den uendelige løkken.
- Sjekk Composer og WindowsTest med og uten compositor, fullskjerm vs. kantløst vindu, og juster presentasjonsmodusen hvis spillet tillater det.
- Logger i detaljIdentifiser tidspunktet for krasjet og se på dmesg/journalctl på det tidspunktet. En GPU-feil eller tilbakestilling vil bli logget.
Verktøy for opptak og feilsøking (RenderDoc)
- Unngå problematiske trinnHvis valg av en bestemt hendelse (som den andre vkQueueSubmit()) utløser krasjen, begrens analysen til trinnene før eller etter den.
- Reduser forvirringTøm shader-cacher (som .bin-cachen i eksemplet) før du lagrer og bruker «rene» bygg av prosjektet.
- Oppdater eller endre versjonbåde RenderDoc og driveren/GPU-en; med nye utvidelser kan en nyere versjon inneholde viktige rettelser.
Når Steam også krasjer eller en BSOD vises
- SystemintegritetKjører minnetester, overvåker temperaturer og kontrollerer strømforsyninger. VK_ERROR_DEVICE_LOST kan være et synlig symptom på et dypere problem.
- KjernenivådrivereInstaller GPU-driveren på nytt på en ren måte. Hvis BSOD-en vedvarer, samle minidumper for å identifisere den nøyaktige modulen.
Små detaljer som gjør en forskjell
Det er tilsynelatende små justeringer som i praksis fullstendig endre stabiliteten av en spesifikk tittel. Innstillingen «Foretrekk lag i DXGI Swapchain» for Detroit: Become Human er et tydelig eksempel. Disse typene alternativer modulere hvordan lag, swapchain og driveren samhandler, og kan omgå en spesifikk feil.
En annen nyttig detalj er tømme shader-hurtigbufferen før du gjør større endringer eller analyserer skjermbilder, slik det ble gjort med .bin-filene i shader-objekteksemplet. Dette reduserer uoverensstemmelser og gamle tilstander som drar ut mellom økter og skydiagnoser.
Til slutt, når et spill Den lukkes ikke, men forblir i en løkke Etter feilen er det en indikasjon på at den logiske enheten har blitt ubrukelig uten at applikasjonen administrerer den fullt ut. I slike tilfeller er det verdt å teste. andre utførelsesruter (annen backend hvis den finnes, endre skjermmodus eller deaktiver avanserte funksjoner som visse skygger eller effekter) for å unngå tilstanden som utløser krasj.
Ressurser for å forstå Vulkan (og feilsøke bedre)
Å lære mer om Vulkan hjelper deg med å tolke feil som VK_ERROR_DEVICE_LOST uten å bli forvirret. Et medlem av fellesskapet anbefalte offisielle Khronos-ressurser med nybegynnervennlige tilnærminger og kuraterte lister. De er et godt utgangspunkt enten du programmerer eller bare vil forstå hva som skjer.
- Nybegynnerguide til Vulkan (Khronos): En samling introduksjonsressurser som hjelper deg med å komme i gang og forstå API-filosofien.
- Khronos Vulkan-ressurser på GitHub: listen indikerer at ressursene er flyttet til vulkan.org, hvor du finner oppdatert dokumentasjon.
Hvis du ikke vet hvor du skal begynne, Disse guidene vil spare deg for prøving og feiling rotete og vil gi deg kriterier for å håndtere problemer som enhetstap, tidsavbrudd, synkroniseringsproblemer og mer.
Fellesskapssignaler: samhandling og kommentarer
I tillegg til detaljerte rapporter var det lette interaksjoner som en «Liker» i en kommentar, og samtaler der de ble spurt læringsressurserSelv om de virker som små detaljer, gjenspeiler de at emnet er levende og delt, og at mange løsninger oppstår fra summen av erfaringer.
Rask sjekkliste for saken din
Hvis dette skjer med deg akkurat nå, prøv denne. kort liste over sjekkerinspirert av tidligere saker:
- Oppdater eller tilbakestill driverenHvis du nettopp oppdaterte og det begynte å feile, kan du prøve den forrige stabile versjonen. Hvis du ikke har oppdatert på flere måneder, kan du installere den nyeste WHQL-versjonen.
- Deaktiver overleggSteam, Discord, GeForce Experience osv. og se om feilen endrer frekvens.
- NVIDIA-tuning per spillI Detroit: Become Human løste det å sette Vulkan/OpenGL-forhåndsinnstillingen til «Foretrekk lag i DXGI Swapchain» krasj.
- Skjermmodus og FPSTving eksklusiv fullskjerm og begrens FPS moderat for å stabilisere gjengivelseskøer.
- Tøm shader-cacher: Sletter spillets hurtigbufferfiler og, hvis aktuelt, driveren.
- Systemloggerdmesg/journalctl på Linux eller Hendelsesvisning på Windows for å oppdage tilbakestillinger eller feil av drivere.
Når skal man rapportere og hva som skal inkluderes
Hvis problemet vedvarer til tross for alt, rapporter det til Nøyaktig informasjon Få fart på hjelpen. Unngå «Ingen svar» i viktige felt: inkluder Spill-ID og tidsstempel Hvis det er en kamp med repriser, og legg ved skjermbilder eller logger når det er mulig.
Ikke glem å legge til komplett teknisk miljøOS-versjon (f.eks. Windows 10 build 19045.4529), Nøyaktig GPU (GeForce GTX 1080, RTX 3080), driverversjon (som 566.12), og om du bruker verktøy som RenderDoc, den konkrete versjonen (f.eks. RenderDoc_2024_07_02_0406d376_64). Disse dataene er gull verdt å reprodusere.
Vanlige spørsmål
Hvorfor krasjer ikke spillet og starter bare i en løkke etter feilen? Fordi applikasjonen går inn i en tilstand der den logiske enheten går tapt, men utgangslogikken ikke utføres fullstendig. I praksis, du må tvinge frem stengingen og sjekk hvilken hendelse eller innstilling som utløser den tilstanden.
Hjelper det å tømme shader-cachen? I flere tilfeller ja, spesielt når det er inkonsekvenser mellom bygg og hurtigbuffer (som .bin-filene i eksemplet med shaderobjekter). Dette er en rask måte å forkaste ødelagte tilstander på.
Bør jeg ta opp med RenderDoc hvis jeg mistenker driveren? Fangstboks hjelp til å forstå rørledningen, men det kan også føre til ustabilitet hvis utvidelsen eller driveren er grønn. Test først uten å ta opp data, og hvis du tar opp data, gjør det med versjoner av verktøyet. som du vet stabilt for saken din.
Kan overlegg forårsake VK_ERROR_DEVICE_LOST? Ja, noen ganger injiserte lag forstyrrer byttekjeden eller med synkronisering. Å deaktivere dem er en av de første testene som må utføres.
Hva om jeg også ser en BSOD i Windows? Det tyder på problemer på kjerne-/driver- eller maskinvarenivåI tillegg til Vulkan-trinnene utfører den minnetester, kontrollerer temperaturer, inspiserer strømforsyningen og analyserer minidumps for å finne den defekte modulen.
Du har en klar plan: Identifiser mønsteret, isoler utløseren og bruk justeringer med dokumentert effektivitetFra den forhåndsinnstilte endringen i NVIDIA-kontrollpanelet som lagret spill i Detroit: Become Human på en RTX 3080, til RenderDoc-retningslinjer for opptak og overvåkingslogger på Linux for Dota 2, finnes det konkrete løsninger som reduserer krasj av typen VK_ERROR_DEVICE_LOST betraktelig. Hvis du også stoler på Khronos-ressurser for å forstå grunnlaget for Vulkan, hvert forsøk vil være mer nøyaktig og du vil kaste bort mindre tid på blindtester.
Lidenskapelig opptatt av teknologi siden han var liten. Jeg elsker å være oppdatert i sektoren og fremfor alt å formidle det. Derfor har jeg vært dedikert til kommunikasjon på teknologi- og videospillnettsteder i mange år. Du kan finne meg skrive om Android, Windows, MacOS, iOS, Nintendo eller andre relaterte emner som du tenker på.
