VK_ERROR_DEVICE_LOST във Vulkan: истински причини, диагностика и решения

Последна актуализация: 24/10/2025

  • VK_ERROR_DEVICE_LOST обикновено означава нулиране на драйвера или повреда в swapchain.
  • Промените за всяка игра (като например многопластов DXGI Swapchain) могат да стабилизират заглавията.
  • Новите разширения (напр. шейдърни обекти) увеличават риска от заснемане.
  • Точните версии на операционната система/драйверите и регистрационните файлове са ключови за възпроизвеждането и коригирането.

Грешка VK_ERROR_DEVICE_LOST

Ако сте срещнали съобщението VK_ERROR_DEVICE_LOST Докато играете игри или проектирате приложения с Vulkan, не сте сами: това е често срещан проблем, който може да се прояви като сривове, неочаквани изключвания или дори цикли, при които програмата не се затваря напълно. Въпреки че е плашещо, обикновено има обяснение и, най-важното, начини за смекчаването или разрешаването му.

В това ръководство ще намерите Реални случаи на Windows и Linux, с игри и инструменти, улики за диагностициране на източника, настройки, които са помогнали на други потребители (като например специфична настройка в контролния панел на NVIDIA за Detroit: Become Human с RTX 3080) и Надеждни ресурси за по-добро разбиране на ВулканИдеята е да не губите време, скачайки от форум на форум, и с един поглед да имате решенията, които наистина имат възможности. Нека научим всичко за грешка VK_ERROR_DEVICE_LOST. 

Какво означава VK_ERROR_DEVICE_LOST и защо се появява?

Във Vulkan грешката VK_ERROR_DEVICE_LOST показва, че логическото устройство е престанало да функционира: драйверът на графичния процесор го е рестартирал, имало е замръзване на драйвера, възникнало е TDR поради блокиране или изтичане на времето за чакане в опашката или приложението е изпратило нещо, което хардуерът/драйверът не е могъл да обработи. Не винаги завършва със срив; понякога, както ще видим, приложението се зацикля и трябва да бъде затворено принудително.

Въпреки че моделът варира в зависимост от оборудването и софтуера, обичайните причини за задействане са Нестабилни драйвери, много нови разширения, слоеве/наслагвания, ограничения на системното време а понякога просто неудачни комбинации от графични настройки. Познаването на някои реални случаи помага за възпроизвеждането и решаването на проблема.

Реални случаи: какво се случи и какво беше направено

Теч на информация за Nvidia RTX 5070 Super-1

Детройт: Станете човек на Windows, RTX 3080 и решителна корекция в NVIDIA

Потребител с GeForce RTX 3080 постоянно получавах сривове на играта с VK_ERROR_DEVICE_LOST, въпреки че правех типичните: Актуализиране на драйвери, тестване на режим на съвместимост и опции за прегледРешението, което ми помогна, беше да отида в контролния панел на NVIDIA и да променя специфична предпочитание, свързана с Vulkan/OpenGL на програмно ниво.

Маршрутът, формулиран по друг начин, беше: Контролен панел на NVIDIA > Управление на 3D настройките > Настройки на програмата > изберете Detroit: Become HumanВ опцията за предварително зададен метод на Vulkan/OpenGL, настройката, която направи разликата, беше задаването ѝ на „Предпочитайте по слоеве в DXGI Swapchain«. С тази промяна, повтарящите се затваряния изчезнаха свързано с VK_ERROR_DEVICE_LOST.

Този пример илюстрира, че понякога, корекция на съвместимостта или как се управлява swapchain При слоевете това може да е ключово, особено когато заглавието има специфичен канал за рендериране или когато има взаимодействие с други слоеве в системата.

Dota 2 на Linux: Цикъл и привидно случайна нестабилност

Друг важен случай е този на Dota 2 работи директно на LinuxДокладваният модел беше озадачаващ: грешката VK_ERROR_DEVICE_LOST се появяваше както по време на мачове в реално време, така и при гледане на повторения, понякога просто от гледане на бой или дори писане в чатаВместо да се затвори напълно, играта остана в Безкраен цикъл и трябваше да бъдат „убити“ ръчно.

В този конкретен опит не бяха направени никакви приноси Няма идентификатор на съвпадение или скрийншотове („Без отговор“ беше посочено и в двете полета), което затруднява съпоставянето на точните моменти. Въпреки това, симптомът (замръзване без пълен срив) сочи към невъзстановимо състояние на устройството от гледна точка на приложението. В Linux този модел може да бъде свързан с драйвера, опашката за презентации и управлението на времето, или известно взаимодействие между композитора и графичната среда.

В такива случаи е препоръчително да се прегледа системни лог файлове (dmesg, journalctl), проверете версиите на Mesa/NVIDIA в зависимост от графичния процесор и деактивирайте слоевете на трети страни. Това са съвети, които, макар и общи, стават уместни в заглавие на Vulkan, изискващо интензивно рендериране като Дота 2.

Изключително съдържание - Щракнете тук  Razer Synapse продължава да се стартира сам: Деактивирайте го и избегнете проблеми в Windows

Нестабилни скрийншотове с RenderDoc и VK_EXT_shader_object

Използването на инструменти за чертане добавя собствен набор от променливи. Наблюдавано е Нестабилности с RenderDoc при заснемане на приложения, които използват разширението VK_EXT_shader_objectвключително Възстановени сривове на драйвери, замръзване на приложения и грешки при загуба на устройствоНе е изненадващо: говорим за скорошно разширение и по своята същност деликатна ситуация (присаждане на слой за улавяне в усъвършенстван тръбопровод).

За да се възпроизведе проблемът последователно, примерът "шейдъробъекти» от хранилището на Саша Вилемс/ВулканПроцедурата беше: Стартирайте двоичния файл shaderobjects.exe под RenderDoc, заснемете кадър и изберете второто събитие vkQueueSubmit().. В този момент, появи се диалоговият прозорец за докладване на грешка на инструмента.

Освен това, за да се намалят объркващите фактори, преди заснемането бяха премахнати следните данни: .bin файлове които примерът генерира (кешове на шейдъри), и грешката все още възниква. Конкретната среда беше: RenderDoc_2024_07_02_0406d376_64, Windows 10 (10.0.19045.4529), Вулкан 1.3.275, GeForce GTX 1080 y драйвери 566.12Тези данни са много полезни, ако докладвате или сравнявате подобни проблеми.

Сривове на играта и Steam, и дори сини екрани

Съобщава се и за един особено досаден сценарий: Играта често се сриваше, понякога и Steam, и дори се появяваше BSOD. (син екран). Основни действия, като например Актуализирайте драйвери, регулирайте качеството на графиката, наложете режим на цял екран, деактивирайте наслагванията y ограничаване на FPS до 60, но затварянията продължиха на всеки няколко минути от играта.

Когато в уравнението са замесени сини екрани, подозрението за нестабилност на ниво ядро/драйвер или в самия хардуерВъпреки че VK_ERROR_DEVICE_LOST е бъг на Vulkan, ако цялата система е нестабилна, препоръчително е да се допълни с тестове на паметта, проверка на диска и термичен мониторинг за да се изключи, че графичният процесор или захранването му са на предела си.

Възможни причини: технически и битови

Вътрешен хардуерен компютър

Въпреки че всеки случай е уникален, има редица често срещани причини, които си струва да се вземат предвид. Ето карта, която ще ви помогне да се ориентирате. Най-често срещаната грешка във VK_ERROR_DEVICE_LOST:

  • Нестабилни или регресирани графични драйвериПоследните версии може да поправят някои заглавия и да повредят други; случва се и обратното.
  • Нови или променящи се разширения: като VK_EXT_shader_object, който все още е в процес на разработка и може да разкрие крайни случаи с инструменти за улавяне.
  • Таймаути и TDR (Windows): Ако дадена задача на графичния процесор се изпълнява завинаги, системата може да рестартира драйвера и да остави логическото устройство „загубено“.
  • Наслагвания и слоевеFPS инжекторите, чатът, стриймингът или трасерите могат да попречат на swapchain-а или pipeline-а.
  • Специфични конфигурации на swapchainНякои режими на презентация, време или композиция могат да предизвикат сривове на специфичен хардуер/драйвери.
  • Кешът на шейдърите е повреден или несинхронизирани: изчистването на кешовете (като .bin файловете в примера) може да премахне фини несъответствия.
  • Хардуер на ръбаТемператури, пренапрежения или леко овърклокване/понижено напрежение могат да доведат до периодична поява на грешката.

Как да поставите диагноза, без да губите самообладание

Преди да промените двадесет неща наведнъж, е по-добре да следвате определен ред. Целта е да се изолира факторът, който задейства VK_ERROR_DEVICE_LOST Във вашия конкретен случай, разчитайки на сигнали, които можете обективно да измерите или възпроизведете.

  1. Възпроизведете грешката в кратка последователност: конкретна битка в Dota 2, меню в Detroit или същата стъпка на заснемане в RenderDoc (например, избиране на втората vkQueueSubmit()).
  2. Обърнете внимание на версиите на операционната система, драйвера и графичния процесор.Данни като Windows 10 компилация 19045.4529, GeForce GTX 1080 и драйвер 566.12 помагат за сравняването на отчетите.
  3. Деактивиране на наслагвания и слоевеSteam, GeForce Experience, Discord и др. Проверете дали поведението се променя без тях.
  4. Възвръщаемост към „стокови“ стойностиБез овърклок на графичния процесор/процесора/RAM паметта, с ограничения на мощността по подразбиране и без агресивно понижаване на напрежението.
  5. Пресъздава се при проследяване Само ако е необходимо: Ако RenderDoc или подобни инструменти влошат проблема, опитайте без първо да заснемате.
  6. Изчистване на кеша на шейдърите: както играта, така и драйверът, ако е приложимо. .bin файловете в примера поддържат това.
  7. Проверете системните лог файловеВ Linux, dmesg и journalctl; в Windows, Event Viewer и minidumps, ако има BSOD.
Изключително съдържание - Щракнете тук  xAI на Мъск подготвя огромен център за данни в Саудитска Арабия с подкрепата на Humain и чипове на Nvidia.

Ако в процеса попаднете на стъпка, която винаги води до грешката (както се случи с втория vkQueueSubmit в примера с шейдърните обекти), вече имате половин диагноза: опитайте променя само една променлива (драйвер, настройка на swapchain, режим на презентация), за да видите дали спусъкът изчезва.

Практични решения и корекции, които са работили

Китай забранява чиповете с изкуствен интелект на Nvidia

Няма универсална магическа пръчка, но има действия с добър процент на успехПо-долу е дадена поредица от мерки, подредени от най-малко натрапчиви към най-натрапчиви.

Игри за Windows (NVIDIA/AMD) и Vulkan

  • Специфична за NVIDIA настройка за Detroit: Become HumanВ Контролен панел > Управление на 3D настройки > Настройки на програмата > изберете изпълнимия файл на играта, намерете предварително зададената настройка Vulkan/OpenGL и я задайте на „Предпочитане на слоеве в DXGI Swapchain“. Това елиминира повтарящите се сривове с RTX 3080.
  • Ограничаване на FPS и синхронизацияПоддържането на 60 FPS и ексклузивен режим на цял екран може да стабилизира някои драйвери, въпреки че не винаги е достатъчно само по себе си.
  • Деактивиране на наслагваниятаSteam, NVIDIA, Discord и др. Ако забележите подобрение, въведете ги отново едно по едно, за да идентифицирате виновника.
  • „Известен като добър“ шофьорАко грешката се появи след актуализиране, опитайте предишна стабилна версия; ако не сте актуализирали от известно време, инсталирайте най-новата WHQL версия.

Linux и нативни игри с Vulkan (напр. Dota 2)

  • Проверете графичния стек: : Версия на Mesa/NVIDIA, подходяща за вашето ядро ​​и среда. Повишаването на версията може да поправи безкрайния цикъл.
  • Проверете композитора и прозорцитеТествайте със и без композитор, цял екран срещу прозорец без рамки и коригирайте режима на представяне, ако играта го позволява.
  • Подробности за логоветеОпределете часа на срива и вижте dmesg/journalctl по това време. Ще бъде регистрирана грешка на графичния процесор или рестартиране.

Инструменти за заснемане и отстраняване на грешки (RenderDoc)

  • Избягвайте проблемни стъпкиАко избирането на конкретно събитие (като например второто vkQueueSubmit()) задейства срива, ограничете анализа до стъпки преди или след него.
  • Намалете объркванетоИзчистете кешовете на шейдърите (като .bin тези в примера), преди да заснемете проекта и да използвате „чисти“ компилации.
  • Актуализиране или промяна на версията: както RenderDoc, така и драйвера/графичния процесор; с новите разширения, по-нова версия може да съдържа ключови корекции.

Когато Steam също се срива или се появява BSOD

  • Цялостност на системата: Изпълнява тестове на паметта, следи температурите и проверява захранванията. VK_ERROR_DEVICE_LOST може да е видим симптом на по-дълбок проблем.
  • Драйвери на ниво ядроПреинсталирайте чисто драйвера на графичния процесор. Ако BSOD продължава, съберете мини-дъмпове, за да идентифицирате точния модул.

Малки детайли, които правят разликата

Има на пръв поглед незначителни корекции, които на практика... напълно да промени стабилността на конкретно заглавие. Настройката „Предпочитане на слоеве в DXGI Swapchain“ за Detroit: Become Human е ясен пример. Тези видове опции модулирайте как слоевете, swapchain-ът и драйверът взаимодействати може да заобиколи специфичен бъг.

Друг полезен детайл е изчистване на кеша на шейдърите преди да правите големи промени или да анализирате екранни снимки, както беше направено с .bin файловете в примера с обекта shader. Това намалява несъответствия и стари състояния които се проточват между сесиите и облачните диагностики.

Накрая, когато една игра Не се затваря, а остава в цикъл След грешката, това е индикация, че логическото устройство е станало неизползваемо, без приложението да го управлява напълно. В тези случаи си струва да се тества. други маршрути за изпълнение (различен бекенд, ако съществува такъв, промяна на режима на екрана или деактивиране на разширени функции като определени сенки или ефекти), за да се избегне състоянието, което задейства срива.

Ресурси за разбиране на Vulkan (и по-добро отстраняване на грешки)

Научаването на повече за Vulkan ви помага да интерпретирате грешки като VK_ERROR_DEVICE_LOST, без да се налага да се заблуждавате. Един член на общността препоръча официални ресурси на Khronos с подходи, подходящи за начинаещи, и подбрани списъци. Те са добра основа независимо дали програмирате или просто искате да разберете какво се случва.

  • Ръководство за начинаещи за Vulkan (Khronos): Колекция от въвеждащи ресурси, които ще ви помогнат да започнете и да разберете философията на API.
  • Ресурси на Khronos Vulkan в GitHub: списъкът показва, че ресурсите са преместени в vulkan.org, където ще намерите актуализирана документация.
Изключително съдържание - Щракнете тук  Цените на DDR5 RAM паметта се покачват рязко: какво се случва с цените и наличностите

Ако не знаете откъде да започнете, Тези ръководства ще ви спестят опити и грешки разхвърлян и ще ви даде критерии за справяне с проблеми като загуба на устройство, изчакване, проблеми със синхронизацията и други.

Сигнали от общността: взаимодействие и коментари

В допълнение към подробните доклади, имаше леки взаимодействия като „харесване“ в коментар и разговори, в които са били питани учебни ресурсиВъпреки че изглеждат като незначителни подробности, те отразяват, че темата е жив и споделени че много решения се раждат от сбора на преживяванията.

Бърз контролен списък за вашия случай

Ако това ви се случва в момента, опитайте това. кратък списък с проверки, вдъхновени от предишни случаи:

  • Актуализиране или възстановяване на драйвераАко току-що сте актуализирали и системата е започнала да се проваля, опитайте предишната стабилна версия; ако не сте актуализирали от месеци, инсталирайте най-новата WHQL версия.
  • Деактивиране на наслагваниятаSteam, Discord, GeForce Experience и др. и вижте дали грешката променя честотата.
  • NVIDIA настройва за всяка играВ Detroit: Become Human, задаването на предварително зададената настройка на Vulkan/OpenGL на „Предпочитане на слоеве в DXGI Swapchain“ отстрани сривовете.
  • Режим на екрана и FPS: Принудително превключване на цял екран и умерено ограничаване на FPS за стабилизиране на опашките за рендиране.
  • Изчистване на кешовете на шейдърите: Изтрива кеш файловете на играта и, ако е приложимо, драйвера.
  • системни регистрационни файловеdmesg/journalctl в Linux или Event Viewer в Windows за откриване на нулиране на драйвери или грешки.

Кога да се докладва и какво да се включи

компютърен хардуер
компютърен хардуер

Ако проблемът продължава въпреки всичко, съобщете го на Точна информация Ускорете помощта. Избягвайте „Без отговори“ в ключови полета: включете Идентификатор на играта и времева маркировка Ако е игра с повторения, прикачете снимки на екрана или лог файлове когато е възможно.

Не забравяйте да добавите пълна техническа средаВерсия на операционната система (напр. Windows 10 компилация 19045.4529), Точен графичен процесор (GeForce GTX 1080, RTX 3080), версия на драйвера (като 566.12) и дали използвате инструменти като RenderDoc, неговата конкретна версия (напр. RenderDoc_2024_07_02_0406d376_64). Възпроизвеждането на тези данни е от изключителна важност.

Често задавани въпроси

Защо играта не се срива, а просто се повтаря след грешката? Защото приложението влиза в състояние, в което логическото устройство е загубено, но изходната логика не е изпълнена напълно. На практика, трябва да насилите затварянето и проверете кое събитие или настройка задейства това състояние.

Помага ли изчистването на кеша на шейдърите? В няколко сценария да, особено когато има несъответствия между компилациите и кешовете (като .bin файловете в примера с шейдър обекти). Това е бърз начин за премахване на повредени състояния.

Трябва ли да заснемам с RenderDoc, ако подозирам драйвера? Улавяне може помогнете за разбирането на тръбопровода, но може да доведе и до нестабилност, ако разширението или драйверът са зелени. Първо тествайте без заснемане, а ако заснемате, направете го с версии на инструмента. че знаеш, че е стабилно за вашия случай.

Могат ли наслагванията да причинят VK_ERROR_DEVICE_LOST? Да, понякога инжектираните слоеве пречат на swapchain-а или със синхронизация. Деактивирането им е един от първите тестове, които трябва да се извършат.

Ами ако видя BSOD и в Windows? Това предполага проблеми на ниво ядро/драйвер или хардуерВ допълнение към стъпките на Vulkan, той извършва тестове на паметта, проверява температурите, инспектира захранването и анализира мини-дъмпове, за да локализира дефектния модул.

Имате ясна пътна карта: Идентифицирайте модела, изолирайте спусъка и приложете корекции с доказана ефективностОт предварително зададената промяна в контролния панел на NVIDIA, която запазваше игри в Detroit: Become Human на RTX 3080, до насоките за заснемане на RenderDoc и лог файловете за наблюдение в Linux за Dota 2, има конкретни решения, които значително намаляват сривовете от типа VK_ERROR_DEVICE_LOST. Ако разчитате и на ресурсите на Khronos, за да разберете основите на Vulkan, всеки опит ще бъде по-точен и ще губите по-малко време за слепи тестове.