最近更新后Nvidia Graphics驱动程序破坏Vulkan的PPA修复(Ubuntu,Linux Mint)

将您的Nvidia 410或415驱动程序更新到最新版本。 原始GPU驱动程序PPA 为某些用户打破了Vulkan。
在更新为Nvidia图形驱动程序版本410.78或415.18之后,某些Ubuntu(但Linux Mint和其他基于Ubuntu的Linux发行版用户也可能会受到影响)用户将不再具有Vulkan ,游戏(DXVK /质子游戏)或使用它的应用程序。

这个 Reddit线程 PPA:提到了一个修复程序,该修复程序可能会导致从A更新Nvidia图形驱动程序后Vulkan无法正常工作。请重新安装Nvidia驱动程序。这可以使用Synaptic软件包管理器轻松完成(使用以下工具安装: sudo apt install synaptic搜索Nvidia,选择所有已安装的Nvidia驱动程序包,然后单击 Mark for Reinstallation 来自 Package 菜单,最后点击 Apply 按钮见 libnvidia-gl-DRIVERVERSION 已安装(此软件包是 libnvidia-gl-410 对于Nvidia 410驱动程序 libnvidia-gl-415 如果尚未安装Nvidia 415驱动程序,请安装。要检查此软件包是否已安装:

apt-cache policy libnvidia-gl-DRIVERVERSION

C.替代修复(通过 推特)随着Ubuntu PPA的Nvidia图形驱动程序最新更新,Vulkan不再起作用, /usr/share/vulkan/icd.d/nvidia_icd.json 文件检查此文件是否包含以下内容:

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

如果 library_path 值是 libGL.so.1替换为 libGLX_nvidia.so.0。您可能需要重新启动。
如果文件不存在或为空,请使用以下命令创建它:

sudo mkdir -p /usr/share/vulkan/icd.d
sudo nano /usr/share/vulkan/icd.d/nvidia_icd.json

nano 命令打开 /usr/share/vulkan/icd.d/nvidia_icd.json 使用Nano命令行文本编辑器。粘贴以下内容 nvidia_icd.json

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

保存文件(使用 Ctrl + O然后 Enter 保存并最终 Ctrl + X 退出Nano)。您可能需要重新启动系统。
您可以通过安装它来检查是否已解决 vulkan-tools

sudo apt install vulkan-tools

并运行 vulkaninfo 在终端中:

vulkaninfo

如果出现错误,说明您的Ubuntu或Linux Mint桌面上的Vulkan支持已中断。这是我得到的错误 /usr/share/vulkan/icd.d/nvidia_icd.json 文件为空:

$ 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)

当错误出现时 /usr/share/vulkan/icd.d/nvidia_icd.json 文件使用 libGL.so.1 代替 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

Sidebar