Cómo solucionar el crasheo VK_ERROR_DEVICE_LOST en juegos Vulkan y Proton
El error VK_ERROR_DEVICE_LOST (-4) en la API gráfica Vulkan indica que la unidad de procesamiento gráfico (GPU) ha dejado de responder al controlador del sistema o ha experimentado un reinicio de contexto (GPU Hang / TDR). En entornos de juegos en Linux a través de Steam Proton o Wine, así como en ejecuciones nativas de Vulkan, este fallo detiene abruptamente el renderizado y cierra el juego.
El error VK_ERROR_DEVICE_LOST (-4) en la API gráfica Vulkan indica que la unidad de procesamiento gráfico (GPU) ha dejado de responder al controlador del sistema o ha experimentado un reinicio de contexto (GPU Hang / TDR). En entornos de juegos en Linux a través de Steam Proton o Wine, así como en ejecuciones nativas de Vulkan, este fallo detiene abruptamente el renderizado y cierra el juego.
El Diagnóstico Rápido
VK_ERROR_DEVICE_LOST: GPU Hang o activación del timeout TDR por sobrecalentamiento u overclocking inestableLa Solución Paso a Paso
-
1
Paso 1: Limpiar la caché de Shaders de DXVK y Steam Proton
Una caché de shaders corrupta es una de las causas más frecuentes de cuelgues del dispositivo gráfico. Elimina los datos temporales del juego para forzar su regeneración limpia:
BASH# Eliminar la caché de shaders de Steam para un juego específico o global rm -rf ~/.steam/steam/steamapps/shadercache/* # Desactivar temporalmente la compilación previa en DXVK si el error persiste export DXVK_STATE_CACHE=0 -
2
Paso 2: Configurar parámetros de lanzamiento en Steam Proton
Para juegos de DirectX 11 o DirectX 12 traducidos a Vulkan mediante DXVK o VKD3D-Proton, agrega parámetros de compatibilidad en las opciones de lanzamiento del juego (Propiedades > Parámetros de lanzamiento):
BASH# Para GPUs NVIDIA (evita el ocultamiento de la GPU y ajusta la API) PROTON_HIDE_NVIDIA_GPU=0 PROTON_ENABLE_NVAPI=1 %command% # Para GPUs AMD Radeon (fuerza el uso del compilador ACO en Mesa y evita sobreasignación) RADV_PERFTEST=aco VKD3D_CONFIG=dxr11 %command% -
3
Paso 3: Ajustar el tiempo de espera del controlador (GPU Recovery & TDR)
Si la GPU tarda más de lo esperado en completar una ráfaga de renderizado, el sistema operativo asume que la tarjeta colapsó y la reinicia.
En Linux (Kernel AMDGPU / NVIDIA), activa la recuperación automática de la GPU modificando los parámetros del kernel o agregando la variable de energía:
BASH# Verificar estado de recuperación de la GPU AMD cat /sys/class/drm/card0/device/gpu_recovery # Si usas controlador NVIDIA, deshabilita perfiles de energía agresivos nvidia-smi -pm 1 nvidia-smi --auto-boost-default=0En Windows, ajusta las claves de registro del mecanismo Timeout Detection and Recovery (TDR):
REGWindows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers] "TdrDelay"=dword:0000000a "TdrDdiDelay"=dword:0000000a(Esto incrementa el margen de espera de la GPU a 10 segundos antes de forzar el reinicio de los controladores).
Consejo de Prevención
Prácticas de seguridad recomendadas:
- Evita Overclocks e Undervolts Inestables: Vulkan utiliza la arquitectura del chip gráfico de forma mucho más directa que DirectX 11. Perfiles de voltaje que parecen estables en pruebas sintéticas pueden causar un
VK_ERROR_DEVICE_LOSTinstantáneo bajo carga de Vulkan. - Mantén los controladores gráficos al día: Si usas Linux con GPU AMD o Intel, asegúrate de contar con versiones recientes de la pila gráfica Mesa (
mesa-vulkan-drivers/vulkan-radeon). - Monitorea el consumo de VRAM: Superar el límite físico de memoria de la tarjeta de video puede forzar la caída del buffer en Vulkan. Reduce la calidad de las texturas en las opciones gráficas del juego si el error ocurre tras largas sesiones de juego.