VK_ERROR_DEVICE_LOST no Vulkan: causas reais, diagnósticos e correções

Última atualização: 24/10/2025

  • VK_ERROR_DEVICE_LOST geralmente implica uma reinicialização do driver ou uma falha na cadeia de troca.
  • Ajustes por jogo (como DXGI Swapchain em camadas) podem estabilizar títulos.
  • Novas extensões (por exemplo, objetos shader) aumentam o risco de capturas.
  • Versões precisas de SO/driver e logs são essenciais para reprodução e correção.

Erro VK_ERROR_DEVICE_LOST

Se você encontrou a mensagem VK_ERROR_DEVICE_LOST Ao jogar ou desenvolver aplicativos com Vulkan, você não está sozinho: é um problema comum que pode se manifestar como travamentos, desligamentos inesperados ou até mesmo loops em que o programa não fecha completamente. Embora seja assustador, geralmente há uma explicação e, mais importante, maneiras de mitigá-lo ou resolvê-lo.

Neste guia você encontrará Casos reais no Windows e Linux, com jogos e ferramentas, pistas para diagnosticar a fonte, configurações que ajudaram outros usuários (como uma configuração específica no Painel de Controle da NVIDIA para Detroit: Torne-se Humano com uma RTX 3080) e Recursos confiáveis ​​para entender melhor o VulkanA ideia é que você não perca tempo pulando de fórum em fórum e tenha, num piscar de olhos, as soluções que realmente têm potencial. Vamos aprender tudo sobre o erro VK_ERROR_DEVICE_LOST. 

O que significa VK_ERROR_DEVICE_LOST e por que ele aparece?

No Vulkan, o erro VK_ERROR_DEVICE_LOST indica que o dispositivo lógico deixou de estar operacional: o driver da GPU reiniciou, houve um travamento do driver, ocorreu um TDR devido a um bloqueio ou tempo limite da fila, ou o aplicativo enviou algo que o hardware/driver não conseguiu processar. Nem sempre termina em travamento; às vezes, como veremos, o aplicativo fica preso em um loop e tem que ser fechado à força.

Embora o padrão varie dependendo do equipamento e do software, os gatilhos usuais são Drivers instáveis, extensões muito novas, camadas/sobreposições, limites de tempo do sistema e, às vezes, apenas combinações infelizes de configurações gráficas. Conhecer alguns casos reais ajuda a reproduzir e resolver o problema.

Casos reais: o que aconteceu e o que foi feito

Vazamento da Nvidia RTX 5070 Super-1

Detroit: Become Human no Windows, RTX 3080 e um ajuste decisivo na NVIDIA

Um usuário com um GeForce RTX 3080 estava constantemente enfrentando travamentos no jogo com VK_ERROR_DEVICE_LOST, apesar de fazer o típico: Atualizar drivers, testar modo de compatibilidade e revisar opçõesA solução que funcionou para mim foi ir ao Painel de Controle da NVIDIA e alterar uma preferência específica relacionada ao Vulkan/OpenGL no nível do programa.

A rota, formulada de outra forma, era: Painel de controle NVIDIA > Gerenciar configurações 3D > Configurações do programa > selecione Detroit: Become Human. Na opção de método predefinido Vulkan/OpenGL, a configuração que fez a diferença foi defini-la como "Preferência por camadas em DXGI Swapchain«. Com essa mudança, encerramentos repetidos desapareceram associado a VK_ERROR_DEVICE_LOST.

Este exemplo ilustra que, às vezes, um ajuste de compatibilidade ou como a cadeia de troca é gerenciada com camadas pode ser a chave, especialmente quando o título tem um pipeline de renderização específico ou quando há interação com outras camadas no sistema.

Dota 2 no Linux: Looping e instabilidade aparentemente aleatória

Outro caso significativo é o de Dota 2 rodando nativamente no LinuxO padrão relatado era intrigante: o erro VK_ERROR_DEVICE_LOST aparecia tanto durante partidas em tempo real quanto ao assistir a replays, às vezes simplesmente por assistindo uma luta ou até mesmo digitando no chat. Em vez de fechar completamente, o jogo ficou em um Loop infinito e teve que ser “morto” manualmente.

Nessa experiência específica não foram feitas contribuições Nenhum ID de correspondência ou capturas de tela ("Sem resposta" foi indicado em ambos os campos), o que dificulta a correlação dos momentos exatos. Mesmo assim, o sintoma (congelamento sem queda total) aponta para um estado de dispositivo irrecuperável da perspectiva da aplicação. No Linux, esse padrão pode estar relacionado ao driver, à fila de apresentação e ao gerenciamento de tempo, ou alguma interação entre compositor e ambiente gráfico.

Em tais cenários é aconselhável rever registros do sistema (dmesg, journalctl), verifique as versões Mesa/NVIDIA dependendo da GPU e desabilite camadas de terceiros. Essas são dicas que, embora genéricas, tornam-se relevantes em um título Vulkan com renderização intensiva como Dota 2.

Conteúdo exclusivo - Clique aqui  Raspberry Pi 500+: O computador com teclado que eleva o padrão

Capturas de tela instáveis ​​com RenderDoc e VK_EXT_shader_object

O uso de ferramentas de plotagem adiciona seu próprio conjunto de variáveis. Foi observado Instabilidades com RenderDoc ao capturar aplicativos que usam a extensão VK_EXT_shader_objectIncluindo Erros de travamento de drivers recuperados, travamentos de aplicativos e perda de dispositivos. Não é surpresa: estamos falando de uma extensão recente e de uma situação inerentemente delicada (enxertar uma camada de captura em um pipeline avançado).

Para reproduzir o problema de forma consistente, o exemplo "objetos de sombra» do repositório de Sascha Willems/VulkanO procedimento foi: Execute o binário shaderobjects.exe no RenderDoc, capture um quadro e selecione o segundo evento vkQueueSubmit(). Nesse momento, a caixa de diálogo do relatório de erros apareceu da ferramenta.

Além disso, para reduzir fatores de confusão, os seguintes itens foram removidos antes da captura: arquivos .bin que o exemplo gera (caches de shader), e o erro ainda ocorreu. O ambiente específico era: RenderDoc_2024_07_02_0406d376_64, Windows 10 (10.0.19045.4529), Vulkan 1.3.275, GeForce GTX 1080 y driver 566.12Esses dados são muito úteis se você estiver relatando ou comparando problemas semelhantes.

Travamentos no jogo e no Steam, e até telas azuis

Um cenário particularmente irritante também foi relatado: O jogo travava com frequência, às vezes o Steam também, e até uma tela azul da morte aparecia. (tela azul). Ações básicas como Atualizar drivers, ajustar a qualidade gráfica, forçar o modo de tela cheia, desabilitar sobreposições y limitar FPS a 60, mas os fechamentos continuaram a cada poucos minutos do jogo.

Quando telas azuis estão envolvidas na equação, a suspeita de instabilidade no nível do kernel/driver ou no próprio hardware. Embora VK_ERROR_DEVICE_LOST seja um bug Vulkan, se todo o sistema estiver instável, é aconselhável complementar com testes de memória, verificação de disco e monitoramento térmico para descartar que a GPU ou sua fonte de alimentação estejam no limite.

Possíveis causas: técnicas e cotidianas

Computador de hardware interno

Embora cada caso seja único, há uma série de causas comuns que vale a pena considerar. Aqui está um mapa para ajudar você a se orientar. O mais comum em VK_ERROR_DEVICE_LOST:

  • Drivers gráficos instáveis ​​ou regredidos: Versões recentes podem corrigir alguns títulos e quebrar outros; o oposto também acontece.
  • Extensões novas ou alteradas: O que VK_EXT_shader_object, que ainda está amadurecendo e pode expor casos extremos com ferramentas de captura.
  • Tempos limite e TDR (Windows): Se uma tarefa na GPU demorar muito, o sistema pode reiniciar o driver e deixar o dispositivo lógico “perdido”.
  • Sobreposições e camadas: Injetores de FPS, bate-papo, streaming ou rastreadores podem interferir na swapchain ou no pipeline.
  • Configurações específicas de swapchain: Certos modos de apresentação, temporização ou composição podem causar travamentos em hardware/drivers específicos.
  • Cache do shader corrompido ou fora de sincronia: limpar caches (como os arquivos .bin no exemplo) pode remover inconsistências sutis.
  • Hardware no limite: Temperaturas, picos de energia ou ligeiros overclocking/subtensão podem fazer com que o erro apareça intermitentemente.

Como diagnosticar sem perder a calma

Antes de mudar vinte coisas de uma vez, é melhor seguir uma ordem. O objetivo é isolar o fator que aciona o VK_ERROR_DEVICE_LOST No seu caso específico, confiar em sinais que você pode medir ou reproduzir objetivamente.

  1. Reproduza o bug em uma sequência curta: uma luta específica no Dota 2, um menu no Detroit ou a mesma etapa de captura no RenderDoc (por exemplo, selecionar o segundo vkQueueSubmit()).
  2. Observe as versões do sistema operacional, do driver e da GPU.: Dados como Windows 10 build 19045.4529, GeForce GTX 1080 e driver 566.12 ajudam a comparar relatórios.
  3. Desativar sobreposições e camadas: Steam, GeForce Experience, Discord, etc. Verifique se o comportamento muda sem eles.
  4. Retorna aos valores de “estoque”: Sem overclock de GPU/CPU/RAM, com limites de energia padrão e sem subtensão agressiva.
  5. Recria sob rastreamento Somente se necessário: Se o RenderDoc ou ferramentas similares agravarem o problema, tente sem capturar primeiro.
  6. Limpar cache do shader: tanto o jogo quanto o driver, se aplicável. Os arquivos .bin no exemplo suportam isso.
  7. Verificar logs do sistema: No Linux, dmesg e journalctl; no Windows, Visualizador de Eventos e minidumps se houver uma BSOD.
Conteúdo exclusivo - Clique aqui  O CachyOS reforça seu compromisso com jogos Linux com Proton aprimorado, kernel LTS e um painel de pacotes baseado na web.

Se no processo você se deparar com uma etapa que sempre precipita o erro (como aconteceu com o segundo vkQueueSubmit no exemplo de objetos shader), você já tem meio diagnóstico: tente alterar apenas uma variável (driver, configuração de swapchain, modo de apresentação) para ver se o gatilho desaparece.

Soluções práticas e ajustes que funcionaram

China proíbe chips de IA da Nvidia

Não existe uma varinha mágica universal, mas existem ações com boa taxa de sucessoAbaixo está uma série de medidas ordenadas da menos para a mais intrusiva.

Jogos para Windows (NVIDIA/AMD) e Vulkan

  • Ajuste específico da NVIDIA para Detroit: Become Human: No Painel de Controle > Gerenciar Configurações 3D > Configurações do Programa > selecione o executável do jogo, localize a predefinição Vulkan/OpenGL e defina-a como "Preferir Camadas na Swapchain DXGI". Isso eliminou travamentos repetidos com a RTX 3080.
  • Limite de FPS e sincronização: Manter 60 FPS e tela cheia exclusiva pode estabilizar certos drivers, embora nem sempre seja suficiente por si só.
  • Desativar sobreposições: Steam, NVIDIA, Discord, etc. Se notar alguma melhora, reintroduza-os um por um para identificar o culpado.
  • Motorista “conhecido como bom”Se o erro aparecer após a atualização, tente uma versão estável anterior; se você não atualiza há algum tempo, instale a versão mais recente do WHQL.

Linux e títulos nativos com Vulkan (por exemplo, Dota 2)

  • Verifique a pilha de gráficos: : Versão do Mesa/NVIDIA apropriada para seu kernel e ambiente. Um aumento de versão pode corrigir o loop infinito.
  • Verifique o compositor e as janelas: Teste com e sem compositor, tela cheia vs. janela sem bordas, e ajuste o modo de apresentação se o jogo permitir.
  • Registros em detalhes: Identifique o horário da falha e verifique o dmesg/journalctl naquele momento. Um erro de GPU ou reinicialização será registrado.

Ferramentas de captura e depuração (RenderDoc)

  • Evite etapas problemáticas: Se a seleção de um evento específico (como o segundo vkQueueSubmit()) acionar a falha, limite a análise às etapas anteriores ou posteriores a ele.
  • Reduzir a confusão: Limpe os caches de shaders (como os .bin no exemplo) antes de capturar e usar compilações “limpas” do projeto.
  • Atualizar ou alterar versão: tanto o RenderDoc quanto o driver/GPU; com novas extensões, uma compilação mais recente pode conter correções importantes.

Quando o Steam também trava ou aparece uma BSOD

  • integridade do sistema: Executa testes de memória, monitora temperaturas e verifica fontes de alimentação. VK_ERROR_DEVICE_LOST pode ser um sintoma visível de um problema mais profundo.
  • Drivers de nível de kernel: Reinstale o driver da GPU de forma limpa. Se a tela azul persistir, colete minidumps para identificar o módulo exato.

Pequenas coisas que fazem a diferença

Existem ajustes aparentemente menores que, na prática, mudar completamente a estabilidade de um título específico. A configuração "Preferir camadas em DXGI Swapchain" para Detroit: Become Human é um exemplo claro. Esses tipos de opções modular como as camadas, a cadeia de troca e o driver interagem, e pode ignorar um bug específico.

Outro detalhe útil é o limpando o cache do shader antes de fazer grandes alterações ou analisar capturas de tela, como foi feito com os arquivos .bin no exemplo do objeto shader. Isso reduz inconsistências e estados antigos que se arrastam entre sessões e diagnósticos em nuvem.

Finalmente, quando um jogo Não fecha, mas fica em loop Após o erro, é um indício de que o dispositivo lógico se tornou inutilizável sem que o aplicativo o gerencie completamente. Nesses casos, vale a pena testar. outras rotas de execução (backend diferente se existir, altere o modo de tela ou desabilite recursos avançados como certas sombras ou efeitos) para evitar o estado que aciona a falha.

Recursos para entender Vulkan (e depurar melhor)

Aprender mais sobre o Vulkan ajuda você a interpretar erros como VK_ERROR_DEVICE_LOST sem se precipitar. Um membro da comunidade recomendou recursos oficiais do Khronos com abordagens para iniciantes e listas selecionadas. Eles são uma boa base seja você programador ou apenas queira entender o que está acontecendo.

  • Guia para iniciantes em Vulkan (Khronos): uma coleção de recursos introdutórios para ajudar você a começar e entender a filosofia da API.
  • Recursos do Khronos Vulkan no GitHub: a listagem indica que os recursos foram movidos para vulkan.org, onde você encontrará documentação atualizada.
Conteúdo exclusivo - Clique aqui  O que é o "Ajuste Dinâmico" da Intel e por que ele pode estar matando seu FPS sem você saber?

Se você não sabe por onde começar, Esses guias vão lhe poupar tentativas e erros confuso e fornecerá critérios para resolver problemas como perda de dispositivo, tempos limite, problemas de sincronização e muito mais.

Sinais da comunidade: interação e comentários

Além de relatórios detalhados, houve interações leves como um “Curtir” em um comentário e conversas onde foram questionados recursos de aprendizagem. Embora pareçam detalhes menores, eles refletem que o tema é vivo e compartilhado, e que muitas soluções nascem da soma de experiências.

Lista de verificação rápida para seu caso

Se isso estiver acontecendo com você agora, experimente isto. pequena lista de verificações, inspirado nos casos anteriores:

  • Atualizar ou reverter driverSe você acabou de atualizar e começou a falhar, tente a versão estável anterior; se você não atualiza há meses, instale o WHQL mais recente.
  • Desativar sobreposições: Steam, Discord, GeForce Experience, etc. e veja se o erro muda de frequência.
  • Ajuste NVIDIA por jogo: Em Detroit: Become Human, definir a predefinição Vulkan/OpenGL como “Preferir camadas em DXGI Swapchain” resolveu travamentos.
  • Modo de tela e FPS: Forçar tela cheia exclusiva e limitar moderadamente o FPS para estabilizar as filas de renderização.
  • Limpar caches de shader: Exclui os arquivos de cache do jogo e, se aplicável, o driver.
  • Registros do sistema: dmesg/journalctl no Linux ou Event Viewer no Windows para detectar reinicializações ou erros de driver.

Quando relatar e o que incluir

hardware de computador
hardware de computador

Se o problema persistir apesar de tudo, informe-nos Informação precisa Acelere o atendimento. Evite “Sem Respostas” em campos-chave: inclua ID do jogo e carimbo de data/hora Se for um jogo com replays, e anexar capturas de tela ou logs quando for possível.

Não se esqueça de adicionar ambiente técnico completo: Versão do sistema operacional (por exemplo, Windows 10 build 19045.4529), GPU exata (GeForce GTX 1080, RTX 3080), versão do driver (como 566.12) e se você usa ferramentas como RenderDoc, sua versão concreta (por exemplo, RenderDoc_2024_07_02_0406d376_64). Esses dados são ótimos para reproduzir.

Perguntas frequentes

Por que o jogo não trava e entra em loop após o erro? Porque a aplicação entra em um estado em que o dispositivo lógico é perdido, mas a lógica de saída não é totalmente executada. Na prática, você tem que forçar o fechamento e verificar qual evento ou configuração aciona esse estado.

Limpar o cache do shader ajuda? Em vários cenários sim, principalmente quando há inconsistências entre compilações e caches (como os arquivos .bin no exemplo dos objetos shader). Esta é uma maneira rápida de descartar estados corrompidos.

Devo capturar com RenderDoc se eu suspeitar do driver? Captura pode ajudar a entender o pipeline, mas também pode introduzir instabilidade se a extensão ou o driver estiverem verdes. Teste primeiro sem capturar e, se capturar, faça-o com versões da ferramenta. que você conhece estável para o seu caso.

Sobreposições podem causar VK_ERROR_DEVICE_LOST? Sim, às vezes o camadas injetadas interferem na cadeia de troca ou com sincronização. Desabilitá-los é um dos primeiros testes a serem realizados.

E se eu também vir BSOD no Windows? Isso sugere problemas no nível do kernel/driver ou hardwareAlém das etapas do Vulkan, ele realiza testes de memória, verifica temperaturas, inspeciona a fonte de alimentação e analisa minidespejos para localizar o módulo defeituoso.

Você tem um roteiro claro: Identifique o padrão, isole o gatilho e aplique ajustes com eficácia comprovadaDa alteração predefinida no Painel de Controle da NVIDIA que salvou jogos em Detroit: Become Human em uma RTX 3080, às diretrizes de captura do RenderDoc e logs de monitoramento no Linux para Dota 2, existem soluções concretas que reduzem significativamente travamentos do tipo VK_ERROR_DEVICE_LOST. Se você também conta com os recursos da Khronos para entender a base do Vulkan, cada tentativa será mais precisa e você perderá menos tempo em testes cegos.