VK_ERROR_DEVICE_LOST a Vulkan: causes reals, diagnòstics i arranjaments

Darrera actualització: 24/10/2025

  • VK_ERROR_DEVICE_LOST sol implicar reinici del driver o fallada del swapchain.
  • Ajustaments per joc (com DXGI Swapchain per capes) poden estabilitzar títols.
  • Extensions noves (p.ex., shader objects) incrementen risc en captures.
  • Versions de SO/driver i logs precisos són clau per reproduir i arreglar.

error VK_ERROR_DEVICE_LOST

Si t'has topat amb el missatge VK_ERROR_DEVICE_LOST mentre jugues o traces aplicacions amb Vulkan, no ets l'única persona: és una fallada freqüent que pot manifestar-se com penges, tancaments inesperats o fins i tot bucles en què el programa no acaba de tancar. Encara que espanta, sol tenir explicació i, el més important, camins per mitigar-ho o resoldre'l.

En aquesta guia trobaràs casos reals a Windows i Linux, amb jocs i eines, pistes per diagnosticar l'origen, configuracions que han ajudat altres usuaris (com un ajustament concret al Panell de control de NVIDIA per a Detroit: Become Human amb una RTX 3080) i recursos fiables per entendre millor Vulkan. La idea és que no perdis temps saltant de fòrum a fòrum i tinguis, d'una ullada, les solucions que realment tenen possibilitats. Anem a aprendre tot sobre el error VK_ERROR_DEVICE_LOST. 

Què significa VK_ERROR_DEVICE_LOST i per què apareix

A Vulkan, l'error VK_ERROR_DEVICE_LOST indica que el dispositiu lògic ha deixat d'estar operatiu: el controlador de la GPU l'ha reiniciat, es va produir un penjament del driver, un TDX per bloqueig o excés de temps en una cua, o l'aplicació va enviar alguna cosa que el maquinari/driver no ha pogut gestionar. No sempre acaba amb un crash; de vegades, com veurem, l'aplicació queda en un bucle i cal tancar-la per força.

Tot i que el patró varia segons l'equip i el programari, els detonants habituals són drivers inestables, extensions molt noves, capes/overlays, límits de temps del sistema i, de vegades, simples combinacions desafortunades d'ajustaments gràfics. Conéixer alguns casos reals ajuda a reproduir i atacar el problema.

Casos reals: què va passar i què es va fer

filtració Nvidia RTX 5070 Super-1

Detroit: Become Human a Windows, RTX 3080, i un ajust decisiu a NVIDIA

Un usuari amb una GeForce RTX 3080 topava amb tancaments constants del joc amb VK_ERROR_DEVICE_LOST malgrat haver fet el típic: actualitzar els drivers, provar el mode de compatibilitat i revisar opcions. La solució que li va funcionar va ser anar al Panell de control de NVIDIA i canviar una preferència específica relacionada amb Vulkan/OpenGL a nivell de programa.

La ruta, formulada altrament, va ser: Panell de control de NVIDIA > Administrar la configuració 3D > Configuració de programa > seleccionar Detroit: Become Human. A l'opció del mètode preestablert per a Vulkan/OpenGL, l'ajust que va marcar la diferència va ser posar-lo a «Preferir per capes a DXGI Swapchain«. Amb aquest canvi, van desaparèixer els tancaments repetits associats a VK_ERROR_DEVICE_LOST.

Aquest exemple il·lustra que, de vegades, un ajustament de compatibilitat o de com es gestiona el swapchain amb les capes pot ser la clau, sobretot quan el títol té una canalització de renderització particular o quan hi ha interacció amb altres capes del sistema.

Dota 2 a Linux: pengi en bucle i inestabilitat aparentment aleatòria

Un altre cas significatiu és el de Dota 2 executat de forma nativa a Linux. El patró reportat va ser desconcertant: l'error VK_ERROR_DEVICE_LOST emergia tant durant partides en temps real com en veure repeticions, de vegades simplement al mirar una baralla o fins i tot en escriure al xat. En lloc de tancar-se del tot, el joc es quedava en un bucle infinit i calia “matar-lo” manualment.

En aquesta experiència concreta no es van aportar Match ID ni captures (s'indicava «No response» en tots dos camps), cosa que complica correlacionar moments exactes. Tot i així, el símptoma (bloqueig sense crash complet) apunta a un estat del dispositiu irrecuperable des de la perspectiva de laplicació. A Linux, aquest patró pot estar relacionat amb el driver, amb la cua de presentació i la gestió de temps, o amb alguna interacció del compositor/entorn gràfic.

En escenaris així convé revisar logs del sistema (dmesg, journalctl), comprovar versions de Mesa/NVIDIA segons GPU, i desactivar capes de tercers. Són pistes que, si bé genèriques, prenen rellevància a un títol Vulkan amb ús intensiu del render com a Dota 2.

Contingut exclusiu - Clic Aquí  Google Beam: El salt de les videotrucades al 3D amb intel·ligència artificial i traducció en temps real

Captures inestables amb RenderDoc i VK_EXT_shader_object

L'ús d'eines de traçat afegeix el conjunt de variables propis. S'han observat inestabilitats amb RenderDoc en capturar aplicacions que utilitzen l'extensió VK_EXT_shader_object, incloent crashes del driver recuperats, bloquejos de l'aplicació i errors de dispositiu perdut. No és estrany: parlem d'una extensió recent i una situació intrínsecament delicada (empeltar una capa de captura en una canalització avançada).

Per reproduir el problema de forma consistent es va fer servir l'exemple «shaderobjects» del repositori de SaschaWillems/Vulkan. El procediment va ser: executar el binari shaderobjects.exe sota RenderDoc, capturar un frame i seleccionar el segon esdeveniment vkQueueSubmit(). En aquest moment, apareixia el diàleg del report d'error de l'eina.

A més, per reduir factors de confusió, abans de la captura es van eliminar els fitxers .bin que genera l'exemple (caixets de shaders), i tot i així la fallada es reproduïa. L'entorn concret era: RenderDoc_2024_07_02_0406d376_64, Windows 10 (10.0.19045.4529), Vulkan 1.3.275, GeForce GTX 1080 y conductor 566.12. Aquestes dades són molt útils si reportaràs o compararàs problemes de la mateixa naturalesa.

Tancaments de joc i de Steam, i fins i tot pantalles blaves

També es va reportar un escenari especialment molest: es tancava el joc amb freqüència, de vegades també Steam, i fins i tot apareixia un BSOD (pantalla blava). S'havien provat ja accions bàsiques com actualitzar drivers, ajustar la qualitat gràfica, forçar el mode pantalla completa, desactivar overlays y limitar els FPS a 60, però els tancaments continuaven cada pocs minuts de partida.

Quan hi ha pantalles blaves a l'equació, cobra pes la sospita de inestabilitat a nivell de kernel/driver o del mateix maquinari. Encara que VK_ERROR_DEVICE_LOST és un error de Vulkan, si el sistema sencer trontolla, convé complementar amb proves de memòria, revisió de discos, i monitorització tèrmica per descartar que la GPU o la seva alimentació estiguin al límit.

Possibles causes: tècniques i del dia a dia

Maquinari intern Ordinador

Tot i que cada cas és un món, hi ha un ram de causes freqüents que convé considerar. Aquí tens un mapa per orientar-te amb el més habitual a VK_ERROR_DEVICE_LOST:

  • Drivers gràfics inestables o amb regressions: versions recents poden arreglar uns títols i trencar-ne d'altres; el contrari també passa.
  • Extensions noves o canviants: com VK_EXT_shader_object, que encara està madurant i pot exposar casos límit amb eines de captura.
  • Timeouts i TDX (Windows): si un treball a la GPU s'eternitza, el sistema pot reiniciar el driver i deixar el dispositiu lògic “perdut”.
  • Overlays i capes: injectors de FPS, xat, streaming o traçadors poden interferir amb el swapchain o el pipeline.
  • Configuracions particulars del swapchain: determinats modes de presentació, sincronització o composició poden disparar errors en maquinari/driver concrets.
  • Shader cache corrupta o desincronitzada: netejar caixets (com els .bin de l'exemple) pot eliminar inconsistències subtils.
  • Maquinari a el límit: temperatures, pics de consum o un lleu overclock/undervolt poden fer aparèixer l'error de manera intermitent.

Com diagnosticar sense perdre la calma

Abans de canviar vint coses alhora, val més seguir un ordre. L'objectiu és aïllar el factor que dispara el VK_ERROR_DEVICE_LOST en el teu cas concret, recolzant-te en senyals que objectivament puguis mesurar o reproduir.

  1. Reprodueix la sentència en una seqüència curta: una baralla concreta a Dota 2, un menú a Detroit o el mateix pas de captura a RenderDoc (p.ex., seleccionar el segon vkQueueSubmit()).
  2. Anota versió de SO, driver i GPU: dades com Windows 10 build 19045.4529, GeForce GTX 1080 i driver 566.12 ajuden a comparar informes.
  3. Desactiva overlays i capes: Steam, GeForce Experience, Discord, etc. Comprova si el comportament canvia sense.
  4. Torna a valors “stock”: sense overclock de GPU/CPU/RAM, amb límits de potència per defecte i sense undervolt agressiu.
  5. Recrea under tracing només si cal: si RenderDoc o eines similars agreugen el problema, prova primer sense capturar.
  6. Neteja cache de shaders: tant la del joc com la del driver si escau. El cas dels .bin de l'exemple el recolza.
  7. Revisa registres del sistema: a Linux, dmesg i journalctl; a Windows, Visor d'esdeveniments i minidumps si hi ha BSOD.
Contingut exclusiu - Clic Aquí  Guia de compra de fonts d'alimentació: watts reals, eficiència i proteccions imprescindibles

Si en el procés fas amb un pas que sempre precipita l'error (com passava amb el segon vkQueueSubmit a l'exemple de shader objects), ja tens mitjà diagnòstic: intenta canviar només una variable (driver, ajustament de swapchain, mode de presentació) per veure si el trigger desapareix.

Solucions pràctiques i ajustaments que han funcionat

xinesa prohibeix nvidia chips ia

No hi ha una vareta màgica universal, però sí accions amb bona taxa d'èxit. A continuació, una bateria de mesures ordenades de menys a més intrusives.

Windows (NVIDIA/AMD) i jocs Vulkan

  • Ajust específic en NVIDIA per a Detroit: Become Human: a Panell de control > Administrar configuració 3D > Configuració de programa > tria l'executable del joc, localitza el mètode preestablert per a Vulkan/OpenGL i estableix «Preferir per capes a DXGI Swapchain». Ha eliminat tancaments repetits amb RTX 3080.
  • Limitar FPS i sincronització: mantenir 60 FPS i pantalla completa exclusiva pot estabilitzar certs drivers, encara que no sempre és suficient per si mateix.
  • Desactiva overlays: Steam, NVIDIA, Discord, etc. Si notes millora, reintrodueix un per un per identificar el culpable.
  • Driver “bo conegut”: si apareix l'error després d'actualitzar, prova una versió anterior estable; si portes temps sense actualitzar, instal·la la darrera WHQL.

Linux i títols nadius amb Vulkan (ex. Dota 2)

  • Comprova la pila gràfica: versió de Taula/NVIDIA adequada per al teu nucli i entorn. Un salt de versió pot arreglar el bucle infinit.
  • Revisa compositor i finestres: prova amb i sense compositor, pantalla completa vs. finestra sense vores, i ajusta el mode de presentació si el joc ho permet.
  • Logs al detall: identifica el moment del penjar i mira dmesg/journalctl en aquesta marca temporal. Un error de GPU o un reset quedaran registrats.

Eines de captura i depuració (RenderDoc)

  • Evita passos problemàtics: si seleccioneu un esdeveniment concret (com el segon vkQueueSubmit()) dispara el crash, limita l'anàlisi a passos previs o posteriors.
  • Redueix confusors: esborra cachés de shaders (com els .bin de l'exemple) abans de capturar i utilitza builds “netes” del projecte.
  • Actualitza o canvia de versió: tant de RenderDoc com del driver/GPU; amb extensions noves, una build més recent pot contenir arranjaments clau.

Quan també cau Steam o apareix un BSOD

  • Integritat del sistema: executa proves de memòria, monitoritza temperatures i revisa fonts dalimentació. VK_ERROR_DEVICE_LOST pot ser el símptoma visible dun problema més profund.
  • Controladors a nivell kernel: reinstal·la amb neteja el driver de la GPU. Si segueix el BSOD, recull minidumps per identificar el mòdul exacte.

Petits detalls que marquen la diferència

Hi ha ajustaments aparentment menors que, a la pràctica, canvien completament l'estabilitat un títol concret. L'ajust de «Preferir per capes a DXGI Swapchain» per a Detroit: Become Human n'és un exemple clar. Aquest tipus d'opcions modulen com interactuen capes, swapchain i el driver, i poden esquivar un bug específic.

Un altre detall útil és la neteja de la memòria cau de shaders abans de grans canvis o d'analitzar captures, com es va fer amb els .bin de l'exemple de shader objects. Això redueix inconsistències i estats antics que s'arrosseguen entre sessions i enterboleixen els diagnòstics.

Finalment, quan un joc no es tanca però es queda al bucle després de l'error, és una pista que el dispositiu lògic va quedar inservible sense que l'aplicació el gestionés del tot. En aquests casos val la pena provar altres rutes d'execució (diferent backend si existeix, canviar mode de pantalla, o desactivar funcions avançades com certes ombres o efectes) per evitar l'estat que dispara la decisió.

Recursos per entendre Vulkan (i depurar millor)

Aprendre més sobre Vulkan ajuda a interpretar errors com VK_ERROR_DEVICE_LOST sense anar a cegues. Un membre de la comunitat va recomanar recursos oficials de Khronos amb enfocaments per a principiants i llistats curats. Són una bona base tant si programes com si simplement vols comprendre què està passant.

  • Beginners Guide to Vulkan (Khronos): recopilació de recursos introductoris per començar amb bon peu i entendre la filosofia de l'API.
  • Khronos Vulkan resources a GitHub: el llistat indica que els recursos s'han traslladat a vulkan.org, on trobaràs documentació actualitzada.
Contingut exclusiu - Clic Aquí  Com canviar el navegador predeterminat a Windows 10 i 11

Si no saps per on començar, aquestes guies t'evitaran l'assaig i l'error desordenat i et donaran criteri per abordar fallades com a device lost, timeouts, problemes de sincronització i altres.

Senyals de la comunitat: interacció i comentaris

A més de reports detallats, hi va haver interaccions lleugeres com un “M'agrada” en un comentari, i converses on es demanaven recursos d'aprenentatge. Tot i que semblen detalls menors, reflecteixen que el tema és viu i compartit, i que moltes solucions neixen de la suma dexperiències.

Checklist ràpid pel teu cas

Si ara mateix t'està passant, prova aquesta llista curta de comprovacions, inspirada en els casos anteriors:

  • Actualitza o retrocedeix driver: si acabes d'actualitzar i va començar a fallar, prova la versió anterior estable; si no actualitzes des de fa mesos, instal·la la darrera WHQL.
  • Desactiva overlays: Steam, Discord, GeForce Experience, etc. i comproveu si l'error canvia de freqüència.
  • Ajust de NVIDIA per joc: a Detroit: Become Human, posar el preset Vulkan/OpenGL a «Preferir per capes a DXGI Swapchain» va resoldre tancaments.
  • Mode de pantalla i FPS: força pantalla completa exclusiva i limita FPS moderadament per estabilitzar cues de presentació.
  • Neteja caixets de shader: elimina arxius de memòria cau del joc i, si escau, del driver.
  • Registres del sistema: dmesg/journalctl a Linux o Visor d'esdeveniments al Windows per detectar resets o errors del driver.

Quan reportar i què incloure

maquinari pc
maquinari pc

Si malgrat tot el problema persisteix, reportar-ho amb informació precisa accelera lajuda. Evita els “No response” en camps clau: inclou ID de partida i timestamp si és un joc amb replays, i adjunta captures o logs quan sigui possible.

No oblidis afegir entorn tècnic complet: versió del SO (per exemple, Windows 10 build 19045.4529), GPU exacta (GeForce GTX 1080, RTX 3080), versió del driver (com 566.12), i si uses eines com RenderDoc, la seva versió concreta (per exemple, RenderDoc_2024_07_02_0406d376_64). Aquestes dades són or per reproduir.

Preguntes freqüents

Per què el joc no es tanca i es queda al bucle després de l'error? Perquè l'aplicació entra en un estat on el dispositiu lògic està perdut, però la lògica de sortida no s'executa del tot. A la pràctica, cal forçar el tancament i revisar quin esdeveniment o ajustament dispara aquest estat.

Serveix d'alguna cosa netejar la memòria cau de shaders? En diversos escenaris sí, especialment quan hi ha inconsistències entre builds i caixets (com els .bin de l'exemple de shader objects). És una manera ràpida de descartar estats corruptes.

Hauria de capturar amb RenderDoc si sospito el driver? Capturar pot ajudar a entendre el pipeline, però també podeu introduir inestabilitat si l'extensió o el driver estan verds. Prova primer sense capturar i, si captures, fes-ho amb versions de l'eina que sàpigues estables per al teu cas.

Els overlays poden causar VK_ERROR_DEVICE_LOST? Sí, de vegades les capes injectades interfereixen amb el swapchain o amb la sincronització. Desactivar-les és de les primeres proves a fer.

Què passa si a més veig BSOD a Windows? Això suggereix problemes a nivell de kernel/driver o maquinari. A més dels passos de Vulkan, fa proves de memòria, verifica temperatures, revisa la font d'alimentació i analitza minidumps per localitzar el mòdul que falla.

Tens un full de ruta clar: identificar el patró, aïllar el gallet i aplicar ajustaments amb provada eficàcia. Des del canvi de preset al Panell de control de NVIDIA que va salvar partides a Detroit: Become Human amb una RTX 3080, fins a les pautes per a captures amb RenderDoc i la vigilància de logs a Linux per a Dota 2, hi ha solucions concretes que redueixen molt els penjats tipus VK_ERROR_DEVICE_L. Si a més et recolzes en recursos de Khronos per comprendre la base de Vulkan, cada intent serà més encertat i perdràs menys temps en proves a cegues.