Corrigindo o Vulkan dos drivers gráficos da Nvidia, Vulkan quebrado após uma atualização recente (Ubuntu, Linux Mint)

30 de novembro de 2018

Logotipo da Nvidia

Parece que a atualização dos drivers Nvidia 410 ou 415 para a versão mais recente dos drivers proprietários de GPU pelo PPA quebrou o Vulkan para alguns usuários.

Depois de atualizar para os drivers gráficos Nvidia versão 410.78 ou 415.18, alguns usuários do Ubuntu (mas o Linux Mint e outras distribuições do Linux com base no Ubuntu provavelmente também são afetados) estão relatando que o Vulkan não funciona mais, interrompendo qualquer jogo (por exemplo, qualquer DXVK/Jogo Proton) ou aplicativo que o estava usando.

Este tópico do Reddit menciona algumas possíveis correções para o Vulkan não funcionar após a atualização dos drivers gráficos da Nvidia a partir do PPA:

A. Tente reinstalar os drivers da Nvidia. Você pode fazer isso facilmente usando o Synaptic Package Manager (instale-o usando: sudo apt install synaptic), procurando por Nvidia, selecionando todos os pacotes de driver Nvidia instalados, clicando em Mark for Reinstallation no menu Package e finalmente clicando no botão Apply.

B. Veja se o libnvidia-gl-DRIVERVERSION está instalado (este pacote é chamado libnvidia-gl-410 para os drivers Nvidia 410 e libnvidia-gl-415 para drivers Nvidia 415) e instale-o se ainda não estiver instalado. Você pode ver se este pacote está instalado executando:

Comandos para usar no terminal

apt-cache policy libnvidia-gl-DRIVERVERSION

C. Outra forma de corrigir (via Twitter) Vulkan que não funciona após uma atualização recente dos drivers gráficos da Nvidia do PPA do Ubuntu está modificando o conteúdo do arquivo /usr/share/vulkan/icd.d/nvidia_icd.json. Verifique se este arquivo contém algo assim:

{
    "file_format_version" : "1.0.0",
    "ICD": {
        "library_path": "libGLX_nvidia.so.0",
        "api_version" : "1.1.84"
    }
}

Se o valor library_path for libGL.so.1, substitua-o por libGLX_nvidia.so.0. Pode ser necessário reinicializar.

Se o arquivo não existir ou estiver vazio, crie-o usando estes comandos:

Comandos para usar no terminal

sudo mkdir -p /usr/share/vulkan/icd.d

sudo nano /usr/share/vulkan/icd.d/nvidia_icd.json

O comando nano abre /usr/share/vulkan/icd.d/nvidia_icd.json usando o editor de texto de linha de comando Nano. Cole o seguinte no nvidia_icd.json:

  • para Nvidia 410:
 {
    "file_format_version" : "1.0.0",
    "ICD": {
        "library_path": "libGLX_nvidia.so.0",
        "api_version" : "1.1.82"
    }
}
  • para Nvidia 415:
{
    "file_format_version" : "1.0.0",
    "ICD": {
        "library_path": "libGLX_nvidia.so.0",
        "api_version" : "1.1.84"
    }
}

Salve o arquivo (use Ctrl + O, depois Enter para salvá-lo e, finalmente, Ctrl + X para sair do Nano). Pode ser necessário reiniciar o sistema.

Você pode verificar se isso foi corrigido instalando vulkan-tools:

Comandos para usar no terminal

sudo apt install vulkan-tools

E então executando vulkaninfo em um terminal:

Comandos para usar no terminal

vulkaninfo

Se você receber um erro, o suporte ao Vulkan foi interrompido em seu desktop Ubuntu ou Linux Mint. Aqui está o erro que recebo quando o arquivo /usr/share/vulkan/icd.d/nvidia_icd.json está vazio:

$ vulkaninfo
==========
VULKANINFO
==========

Vulkan Instance Version: 1.1.82

vulkaninfo: /build/vulkan-tools-ZnxIl9/vulkan-tools-1.1.82.0+dfsg1/vulkaninfo/vulkaninfo.c:564: AppGetGlobalLayerExtensions: Assertion `!err\' failed.
Aborted (core dumped)

E o erro exibido quando o arquivo /usr/share/vulkan/icd.d/nvidia_icd.json usa libGL.so.1 em vez de libGLX_nvidia.so.0:

$ vulkaninfo
==========
VULKANINFO
==========

Vulkan Instance Version: 1.1.82

ERROR: [Loader Message] Code 0 : loader_scanned_icd_add: Attempt to retrieve either \'vkGetInstanceProcAddr\' or \'vk_icdGetInstanceProcAddr\' from ICD libGL.so.1 failed.
Cannot create Vulkan instance.
/build/vulkan-tools-ZnxIl9/vulkan-tools-1.1.82.0+dfsg1/vulkaninfo/vulkaninfo.c:825: failed with VK_ERROR_INCOMPATIBLE_DRIVER

Esse post foi traduzido do site LinuxUprising.com pela rtland.team.

Linux Uprising Blog
Propaganda
Propaganda