- Ang VK_ERROR_DEVICE_LOST ay karaniwang nagpapahiwatig ng pag-reset ng driver o pagkabigo sa swapchain.
- Maaaring i-stabilize ng mga per-game tweak (gaya ng layered DXGI Swapchain) ang mga pamagat.
- Ang mga bagong extension (hal., mga shader object) ay nagpapataas ng panganib ng mga pagkuha.
- Ang mga tumpak na bersyon ng OS/driver at mga log ay susi sa pagpaparami at pag-aayos.
Kung nakatagpo ka ng mensaheng VK_ERROR_DEVICE_LOST Habang naglalaro o nagdidisenyo ng mga application gamit ang Vulkan, hindi ka nag-iisa: ito ay isang karaniwang isyu na maaaring magpakita mismo bilang mga pag-crash, hindi inaasahang pag-shutdown, o kahit na mga loop kung saan hindi ganap na magsasara ang program. Bagama't nakakatakot, kadalasan ay may paliwanag ito at, higit sa lahat, mga paraan para mabawasan o malutas ito.
Sa gabay na ito makikita mo Mga totoong kaso sa Windows at Linux, na may mga laro at tool, mga pahiwatig upang masuri ang pinagmulan, mga setting na nakatulong sa ibang mga user (tulad ng isang partikular na setting sa NVIDIA Control Panel para sa Detroit: Maging Tao na may RTX 3080), at Mga mapagkakatiwalaang mapagkukunan upang mas maunawaan ang VulkanAng ideya ay hindi ka mag-aaksaya ng oras sa pagtalon mula sa forum patungo sa forum at magkaroon, sa isang sulyap, ang mga solusyon na talagang may mga posibilidad. Alamin natin ang lahat tungkol sa error VK_ERROR_DEVICE_LOST.
Ano ang ibig sabihin ng VK_ERROR_DEVICE_LOST at bakit ito lumilitaw?
Sa Vulkan, ang VK_ERROR_DEVICE_LOST na error ay nagpapahiwatig na ang lohikal na aparato ay tumigil sa pagpapatakbo: ni-restart ito ng driver ng GPU, nagkaroon ng pagkabit ng driver, naganap ang isang TDR dahil sa pagharang o timeout ng queue, o nagpadala ang application ng isang bagay na hindi kayang hawakan ng hardware/driver. Hindi ito palaging nagtatapos sa isang pag-crash; minsan, tulad ng makikita natin, ang application ay natigil sa isang loop at kailangang isara sa pamamagitan ng puwersa.
Bagama't nag-iiba ang pattern depende sa kagamitan at software, ang mga karaniwang trigger ay Mga hindi matatag na driver, napakabagong extension, mga layer/overlay, mga limitasyon sa oras ng system at kung minsan, mga kapus-palad na kumbinasyon ng mga setting ng graphics. Ang pag-alam sa ilang totoong buhay na kaso ay nakakatulong sa pagpaparami at pagtugon sa problema.
Mga totoong kaso: kung ano ang nangyari at kung ano ang ginawa

Detroit: Maging Tao sa Windows, RTX 3080, at isang mapagpasyang pagsasaayos sa NVIDIA
Isang user na may a GeForce RTX 3080 ay patuloy na nakakaranas ng mga pag-crash ng laro sa VK_ERROR_DEVICE_LOST sa kabila ng paggawa ng karaniwang: I-update ang mga driver, test compatibility mode, at mga opsyon sa pagsusuriAng solusyon na nagtrabaho para sa akin ay pumunta sa NVIDIA Control Panel at baguhin ang isang partikular na kagustuhan na nauugnay sa Vulkan/OpenGL sa antas ng programa.
Ang ruta, na binuo sa ibang paraan, ay: NVIDIA Control Panel > Manage 3D Settings > Program Settings > piliin ang Detroit: Become Human. Sa opsyong Vulkan/OpenGL preset method, ang setting na gumawa ng pagkakaiba ay ang pagtatakda nito sa "Mas gusto ayon sa mga layer sa DXGI Swapchain«. Sa pagbabagong iyon, nawala ang paulit-ulit na pagsasara nauugnay sa VK_ERROR_DEVICE_LOST.
Ang halimbawang ito ay naglalarawan na kung minsan, isang pagsasaayos ng compatibility o kung paano pinamamahalaan ang swapchain na may mga layer, maaari itong maging susi, lalo na kapag ang pamagat ay may partikular na render pipeline o kapag may pakikipag-ugnayan sa ibang mga layer sa system.
Dota 2 sa Linux: Looping at Tila Random na Kawalang-tatag
Ang isa pang makabuluhang kaso ay ang Ang Dota 2 ay native na tumatakbo sa LinuxAng naiulat na pattern ay nakapagtataka: ang VK_ERROR_DEVICE_LOST na error ay lalabas sa parehong real-time na mga laban at kapag nanonood ng mga replay, minsan sa pamamagitan lamang ng nanonood ng away o kahit na nagta-type sa chat. Sa halip na ganap na isara, nanatili ang laro sa a Walang katapusang loop at kailangang "patayin" nang manu-mano.
Sa partikular na karanasang iyon, walang ginawang kontribusyon Walang Match ID o mga screenshot ("Walang tugon" ay ipinahiwatig sa parehong mga patlang), na nagpapahirap sa pag-ugnay ng mga eksaktong sandali. Gayunpaman, ang sintomas (nagyeyelo nang walang kumpletong pag-crash) ay tumuturo sa isang hindi mababawi na estado ng device mula sa pananaw ng aplikasyon. Sa Linux, ang pattern na ito ay maaaring nauugnay sa driver, presentation queue at timing management, o ilang kompositor/graphical na pakikipag-ugnayan sa kapaligiran.
Sa ganitong mga sitwasyon, ipinapayong suriin mga log ng system (dmesg, journalctl), tingnan ang mga bersyon ng Mesa/NVIDIA depende sa GPU, at huwag paganahin ang mga layer ng third-party. Ito ang mga tip na, bagama't generic, ay nagiging may-katuturan isang render-intensive na pamagat ng Vulkan parang Dota 2.
Mga hindi matatag na screenshot na may RenderDoc at VK_EXT_shader_object
Ang paggamit ng mga tool sa pag-plot ay nagdaragdag ng sarili nitong hanay ng mga variable. Ito ay naobserbahan Mga kawalang-tatag sa RenderDoc kapag kumukuha ng mga application na gumagamit ng extension VK_EXT_shader_objectkasama Mga na-recover na pag-crash ng driver, pag-freeze ng application, at pagkawala ng mga error sa device. Ito ay hindi nakakagulat: pinag-uusapan natin ang tungkol sa isang kamakailang extension at isang likas na maselan na sitwasyon (paghugpong ng isang capture layer sa isang advanced na pipeline).
Upang paulit-ulit na kopyahin ang problema, ang halimbawa "shaderobjects» mula sa imbakan ng Sascha Willems/VulkanAng pamamaraan ay: Patakbuhin ang shaderobjects.exe binary sa ilalim ng RenderDoc, kumuha ng frame at piliin ang pangalawang vkQueueSubmit() na kaganapan. Sa sandaling iyon, lumitaw ang dialog ng ulat ng error ng tool.
Bilang karagdagan, upang mabawasan ang nakakalito na mga kadahilanan, ang mga sumusunod ay inalis bago makuha: .bin file na nabuo ang halimbawa (mga shader cache), at naganap pa rin ang error. Ang partikular na kapaligiran ay: RenderDoc_2024_07_02_0406d376_64, Windows 10 (10.0.19045.4529), Vulkan 1.3.275, GeForce GTX 1080 y controller 566.12Ang data na ito ay lubhang kapaki-pakinabang kung nag-uulat ka o naghahambing ng mga katulad na isyu.
Nag-crash ang Game at Steam, at maging ang mga asul na screen
Ang isang partikular na nakakainis na senaryo ay iniulat din: Ang laro ay madalas mag-crash, minsan Steam din, at kahit isang BSOD ay lilitaw. (asul na screen). Mga pangunahing aksyon tulad ng I-update ang mga driver, ayusin ang kalidad ng graphics, pilitin ang full screen mode, huwag paganahin ang mga overlay y limitahan ang FPS sa 60, ngunit nagpatuloy ang pagsasara bawat ilang minuto ng laro.
Kapag ang mga asul na screen ay kasangkot sa equation, ang hinala ng kawalang-tatag sa antas ng kernel/driver o sa mismong hardware. Bagama't ang VK_ERROR_DEVICE_LOST ay isang Vulkan bug, kung ang buong sistema ay umaalog-alog, ipinapayong magdagdag ng memory test, disk check, at thermal monitoring upang mamuno na ang GPU o ang power supply nito ay nasa limitasyon nito.
Mga posibleng dahilan: teknikal at araw-araw

Bagama't natatangi ang bawat kaso, may ilang karaniwang dahilan na dapat isaalang-alang. Narito ang isang mapa upang matulungan kang mag-navigate. Ang pinakakaraniwan sa VK_ERROR_DEVICE_LOST:
- Hindi stable o regressed graphics driver: Maaaring ayusin ng mga kamakailang bersyon ang ilang mga pamagat at masira ang iba; kabaligtaran din ang nangyayari.
- Bago o nagbabago ng mga extension: bilang
VK_EXT_shader_object, na nag-mature pa at maaaring ilantad ang mga edge case gamit ang mga tool sa pagkuha. - Mga timeout at TDR (Windows): Kung ang isang trabaho sa GPU ay tumagal nang tuluyan, maaaring i-restart ng system ang driver at iwanang “nawala” ang lohikal na device.
- Mga overlay at layer: Maaaring makagambala ang mga FPS injector, chat, streaming, o tracer sa swapchain o pipeline.
- Mga partikular na pagsasaayos ng swapchain: Ang ilang partikular na presentasyon, timing, o mga mode ng komposisyon ay maaaring mag-trigger ng mga pag-crash sa partikular na hardware/driver.
- Nasira ang cache ng shader o wala sa sync: ang pag-clear ng mga cache (tulad ng mga .bin na file sa halimbawa) ay maaaring mag-alis ng mga banayad na hindi pagkakapare-pareho.
- Hardware sa gilid: Ang mga temperatura, power surges o bahagyang overclocking/undervoltage ay maaaring maging sanhi ng error na lumitaw nang paulit-ulit.
Paano mag-diagnose nang hindi nawawala ang iyong cool
Bago baguhin ang dalawampung bagay nang sabay-sabay, mas mabuting sundin ang isang utos. Ang layunin ay ihiwalay ang salik na nagti-trigger ng VK_ERROR_DEVICE_LOST Sa iyong partikular na kaso, umaasa sa mga senyales na maaari mong sukatin o i-reproduce.
- I-reproduce ang bug sa isang maikling pagkakasunod-sunod: isang partikular na laban sa Dota 2, isang menu sa Detroit, o ang parehong hakbang sa pagkuha sa RenderDoc (hal., pagpili sa pangalawang vkQueueSubmit()).
- Tandaan ang mga bersyon ng OS, driver, at GPU.: Ang data tulad ng Windows 10 build 19045.4529, GeForce GTX 1080, at driver 566.12 ay tumutulong sa pagkumpara ng mga ulat.
- Huwag paganahin ang mga overlay at layer: Steam, GeForce Experience, Discord, atbp. Suriin kung nagbabago ang pag-uugali nang wala sila.
- Bumabalik sa mga halaga ng "stock".: Walang overclocking ng GPU/CPU/RAM, na may mga default na limitasyon sa kapangyarihan at walang agresibong undervolting.
- Muling nililikha sa ilalim ng pagsubaybay Kung kinakailangan lamang: Kung ang RenderDoc o mga katulad na tool ay nagpapalubha sa problema, subukan nang hindi muna kumukuha.
- I-clear ang cache ng shader: parehong laro at driver, kung naaangkop. Sinusuportahan ito ng mga .bin na file sa halimbawa.
- Suriin ang mga log ng system: Sa Linux, dmesg at journalctl; sa Windows, Event Viewer at minidumps kung may BSOD.
Kung sa proseso ay nakatagpo ka ng isang hakbang na palaging nauuna ang pagkakamali (tulad ng nangyari sa pangalawang vkQueueSubmit sa halimbawa ng shader objects), mayroon ka nang kalahating diagnosis: subukan baguhin ang isang variable lamang (driver, setting ng swapchain, presentation mode) para makita kung mawala ang trigger.
Mga praktikal na solusyon at pagsasaayos na nagtrabaho

Walang unibersal na magic wand, ngunit mayroon mga aksyon na may magandang rate ng tagumpayNasa ibaba ang isang serye ng mga hakbang na iniutos mula sa pinakamaliit hanggang sa pinakapanghihimasok.
Windows (NVIDIA/AMD) at mga larong Vulkan
- Tuning na partikular sa NVIDIA para sa Detroit: Become Human: Sa Control Panel > Manage 3D Settings > Program Settings > piliin ang game executable, hanapin ang Vulkan/OpenGL preset, at itakda ito sa "Prefer Layers on DXGI Swapchain." Inalis nito ang paulit-ulit na pag-crash sa RTX 3080.
- Limitahan ang FPS at pag-synchronize: Ang pagpapanatili ng 60 FPS at eksklusibong full screen ay maaaring magpatatag ng ilang partikular na driver, bagama't hindi ito palaging sapat sa sarili nitong.
- Huwag paganahin ang mga overlay: Steam, NVIDIA, Discord, atbp. Kung napansin mo ang pagbuti, muling ipakilala ang mga ito nang isa-isa upang matukoy ang may kasalanan.
- "Kilalang mabuti" driverKung lumitaw ang error pagkatapos mag-update, subukan ang isang nakaraang stable na bersyon; kung matagal ka nang hindi nag-update, i-install ang pinakabagong bersyon ng WHQL.
Linux at mga katutubong pamagat na may Vulkan (hal. Dota 2)
- Suriin ang graphics stack: : Mesa/NVIDIA na bersyon na angkop para sa iyong kernel at kapaligiran. Maaaring ayusin ng bump ng bersyon ang infinite loop.
- Suriin ang kompositor at mga bintana: Subukan ang may at walang compositor, full screen vs. borderless window, at ayusin ang presentation mode kung pinapayagan ito ng laro.
- Mga log nang detalyado: Tukuyin ang oras ng pag-crash at tingnan ang dmesg/journalctl sa oras na iyon. Ang isang GPU error o pag-reset ay mai-log.
Mga Tool sa Pag-capture at Pag-debug (RenderDoc)
- Iwasan ang mga may problemang hakbang: Kung ang pagpili ng isang partikular na kaganapan (tulad ng pangalawang vkQueueSubmit()) ay magti-trigger ng pag-crash, limitahan ang pagsusuri sa mga hakbang bago o pagkatapos nito.
- Bawasan ang kalituhan: I-clear ang mga cache ng shader (tulad ng mga .bin sa halimbawa) bago kumuha at gumamit ng "malinis" na mga build ng proyekto.
- I-update o baguhin ang bersyon: parehong RenderDoc at ang driver/GPU; na may mga bagong extension, ang isang mas bagong build ay maaaring maglaman ng mga pangunahing pag-aayos.
Kapag nag-crash din ang Steam o may lumabas na BSOD
- Integridad ng system: Nagpapatakbo ng mga pagsusuri sa memorya, sinusubaybayan ang mga temperatura, at sinusuri ang mga power supply. Ang VK_ERROR_DEVICE_LOST ay maaaring isang nakikitang sintomas ng mas malalim na problema.
- Mga driver sa antas ng kernel: Malinis na muling i-install ang GPU driver. Kung magpapatuloy ang BSOD, kolektahin ang mga minidumps upang matukoy ang eksaktong module.
Maliit na mga detalye na gumagawa ng pagkakaiba
May mga tila maliliit na pagsasaayos na, sa pagsasagawa, ganap na baguhin ang katatagan ng isang tiyak na pamagat. Ang setting na "Prefer layers in DXGI Swapchain" para sa Detroit: Become Human ay isang malinaw na halimbawa. Ang mga ganitong uri ng mga pagpipilian modulate kung paano nakikipag-ugnayan ang mga layer, swapchain at ang driver, at maaaring lampasan ang isang partikular na bug.
Ang isa pang kapaki-pakinabang na detalye ay ang ni-clear ang cache ng shader bago gumawa ng malalaking pagbabago o pag-aralan ang mga screenshot, tulad ng ginawa sa mga .bin na file sa halimbawa ng object ng shader. Binabawasan nito hindi pagkakapare-pareho at lumang estado na nag-drag sa pagitan ng mga session at cloud diagnose.
Sa wakas, kapag isang laro Hindi ito nagsasara ngunit nananatili sa isang loop Pagkatapos ng error, ito ay isang palatandaan na ang lohikal na aparato ay naging hindi magagamit nang hindi ganap na pinamamahalaan ito ng application. Sa mga kasong iyon, sulit ang pagsubok. iba pang mga ruta ng pagpapatupad (iba't ibang backend kung mayroon ito, baguhin ang screen mode, o huwag paganahin ang mga advanced na feature tulad ng ilang anino o effect) upang maiwasan ang estado na nag-trigger ng pag-crash.
Mga mapagkukunan upang maunawaan ang Vulkan (at mas mahusay na mag-debug)
Ang pag-aaral ng higit pa tungkol sa Vulkan ay nakakatulong sa iyo na bigyang-kahulugan ang mga error tulad ng VK_ERROR_DEVICE_LOST nang hindi tumatalon. Isang miyembro ng komunidad ang nagrekomenda ng mga opisyal na mapagkukunan ng Khronos na may mga beginner-friendly na diskarte at mga na-curate na listahan. Ang mga ito ay isang magandang base kung ikaw ay nagprograma o nais lamang na maunawaan kung ano ang nangyayari.
- Gabay sa Mga Nagsisimula sa Vulkan (Khronos): Isang koleksyon ng mga panimulang mapagkukunan upang matulungan kang magsimula at maunawaan ang pilosopiya ng API.
- Mga mapagkukunan ng Khronos Vulkan sa GitHub: ang listahan ay nagpapahiwatig na ang mga mapagkukunan ay inilipat sa vulkan.org, kung saan makikita mo ang na-update na dokumentasyon.
Kung hindi mo alam kung saan magsisimula, Ang mga gabay na ito ay magliligtas sa iyo ng pagsubok at pagkakamali magulo at bibigyan ka ng pamantayan para matugunan ang mga isyu gaya ng pagkawala ng device, pag-timeout, mga problema sa pag-synchronize, at higit pa.
Mga senyales ng komunidad: pakikipag-ugnayan at komento
Bilang karagdagan sa mga detalyadong ulat, mayroong mga magaan na pakikipag-ugnayan tulad ng "Like" sa isang komento, at mga pag-uusap kung saan sila tinanong mapagkukunan ng pag-aaral. Bagama't tila maliliit na detalye ang mga ito, sinasalamin nila na ang paksa ay buhay at ibinahagi, at maraming solusyon ang isinilang mula sa kabuuan ng mga karanasan.
Mabilis na checklist para sa iyong kaso
Kung ito ay nangyayari sa iyo ngayon, subukan ang isang ito. maikling listahan ng mga tseke, inspirasyon ng mga nakaraang kaso:
- I-update o i-roll back ang driverKung nag-update ka lang at nagsimula itong mabigo, subukan ang nakaraang stable na bersyon; kung hindi ka nag-update ng ilang buwan, i-install ang pinakabagong WHQL.
- Huwag paganahin ang mga overlay: Steam, Discord, GeForce Experience, atbp. at tingnan kung nagbabago ang dalas ng error.
- NVIDIA tuning bawat laro: Sa Detroit: Become Human, ang pagtatakda ng Vulkan/OpenGL preset sa “Prefer Layers in DXGI Swapchain” ay nalutas ang mga pag-crash.
- Screen mode at FPS: Pilitin ang eksklusibong fullscreen at katamtamang limitahan ang FPS upang patatagin ang mga pila sa pag-render.
- I-clear ang mga cache ng shader: Tinatanggal ang mga file ng cache ng laro at, kung naaangkop, ang driver.
- Mga log ng system: dmesg/journalctl sa Linux o Event Viewer sa Windows para makita ang mga pag-reset o error ng driver.
Kailan mag-uulat at kung ano ang isasama
Kung magpapatuloy ang problema sa kabila ng lahat, iulat ito sa Tumpak na impormasyon Pabilisin ang tulong. Iwasan ang "Walang Mga Tugon" sa mga pangunahing field: isama Game ID at timestamp Kung ito ay isang laro na may mga replay, at ilakip mga screenshot o log kung kailan pwede.
Huwag kalimutang magdagdag kumpletong teknikal na kapaligiran: Bersyon ng OS (hal. Windows 10 build 19045.4529), Eksaktong GPU (GeForce GTX 1080, RTX 3080), bersyon ng driver (tulad ng 566.12), at kung gumagamit ka ng mga tool tulad ng RenderDoc, ang kongkretong bersyon nito (hal. RenderDoc_2024_07_02_0406d376_64). Ang data na ito ay ginto upang magparami.
Mga madalas itanong
Bakit hindi nag-crash ang laro at umiikot lang pagkatapos ng error? Dahil ang application ay pumapasok sa isang estado kung saan ang lohikal na aparato ay nawala, ngunit ang output logic ay hindi ganap na naisakatuparan. Sa pagsasanay, kailangan mong pilitin ang pagsasara at tingnan kung anong kaganapan o setting ang nag-trigger sa estadong iyon.
Nakakatulong ba ang pag-clear sa shader cache? Sa ilang mga senaryo oo, lalo na kapag mayroon hindi pagkakapare-pareho sa pagitan ng mga build at cache (tulad ng mga .bin na file sa halimbawa ng shader objects). Ito ay isang mabilis na paraan upang itapon ang mga tiwaling estado.
Dapat ko bang makuha gamit ang RenderDoc kung pinaghihinalaan ko ang driver? Makuha tumulong na maunawaan ang pipeline, ngunit maaari rin itong magpakilala ng kawalang-tatag kung berde ang extension o driver. Subukan muna nang hindi kumukuha, at kung kukunan mo, gawin ito gamit ang mga bersyon ng tool. na alam mong stable para sa iyong kaso.
Maaari bang maging sanhi ng VK_ERROR_DEVICE_LOST ang mga overlay? Oo, minsan ang ang mga iniksyon na layer ay nakakasagabal sa swapchain o may synchronization. Ang hindi pagpapagana sa mga ito ay isa sa mga unang pagsubok na gagawin.
Paano kung makita ko rin ang BSOD sa Windows? Iyon ay nagmumungkahi mga problema sa antas ng kernel/driver o hardwareBilang karagdagan sa mga hakbang sa Vulkan, nagsasagawa ito ng mga pagsubok sa memorya, sinusuri ang mga temperatura, sinusuri ang suplay ng kuryente, at sinusuri ang mga minidumps upang mahanap ang may sira na module.
Mayroon kang malinaw na roadmap: Tukuyin ang pattern, ihiwalay ang trigger, at ilapat ang mga pagsasaayos na may napatunayang pagiging epektiboMula sa preset na pagbabago sa NVIDIA Control Panel na nag-save ng mga laro sa Detroit: Become Human sa isang RTX 3080, hanggang sa RenderDoc capture guidelines at monitoring logs sa Linux para sa Dota 2, may mga konkretong solusyon na lubos na nakakabawas ng VK_ERROR_DEVICE_LOST-type crash. Kung umaasa ka rin sa mga mapagkukunan ng Khronos upang maunawaan ang batayan ng Vulkan, ang bawat pagtatangka ay magiging mas tumpak at magsasayang ka ng mas kaunting oras sa mga blind test.
Mahilig sa teknolohiya mula pa noong bata pa siya. Gustung-gusto kong maging up to date sa sektor at, higit sa lahat, ipaalam ito. Iyon ang dahilan kung bakit ako ay nakatuon sa komunikasyon sa teknolohiya at mga website ng video game sa loob ng maraming taon na ngayon. Makikita mo akong nagsusulat tungkol sa Android, Windows, MacOS, iOS, Nintendo o anumang iba pang nauugnay na paksang naiisip.
