Vulkan - Arch Linux 中文维基

跳至內容

# Vulkan

出自 Arch Linux 中文维基
翻譯狀態：

- 本文（或部分內容）譯自 Vulkan，最近一次同步於 2024-01-11，若英文版本有所更改，則您可以幫助同步與翻譯更改的內容。
- 您可以在 ArchWiki 的對應頁面找到本文翻譯的原始修訂歷史。
- 本文可能與英文原文存在出入。

來自 wikipedia:Vulkan (API):

  Vulkan是一種低開銷、跨平台的3D圖形和計算API。它於2016年首次發布，是 OpenGL 的繼任者。

在 Khronos 了解更多信息。

## 安裝

提示：在混合圖形技術（NVIDIA Optimus/AMD Dynamic Switchable Graphics）上:

- Vulkan 目前沒有被 Bumblebee [1] 官方支持，但可以工作在 primus_vk包 或 primus-vk-gitAUR上。
- Radeon Vulkan 驅動程序現在支持 PRIME [2]。

要運行 Vulkan 程序，你需要安裝 vulkan-icd-loader包 軟體包（如果想運行32位程序，還需要安裝 lib32-vulkan-icd-loader包）以及顯卡的驅動程序。有幾個軟體包可以提供 vulkan 驅動程序：

- Intel: vulkan-intel包 (或 lib32-vulkan-intel包)
- NVIDIA: 有兩種實現：
  - nvidia-utils包 (或 lib32-nvidia-utils包) - NVIDIA 專有
  - vulkan-nouveau包(或lib32-vulkan-nouveau包) - NVK (Mesa 項目的一部分)
    提示：啟用 NVK 還需要額外的系統配置，有關詳細信息，請參閱 Nouveau#使用 Mesa NVK Vulkan 驅動程序。
- AMD: 有兩種實現，可以同時安裝：
  - vulkan-radeon包 (或 lib32-vulkan-radeon包) - RADV （Mesa 項目的一部分）
  - vulkan-amdgpu-proAUR (或 lib32-vulkan-amdgpu-proAUR) - AMDGPU PRO（由 AMD維護）
- Lavapipe: vulkan-swrast包 (32位程序支持需安裝lib32-vulkan-swrast包) 軟體光柵化器，僅推薦用於沒有 Vulkan 支持的設備
- SwiftShader: swiftshader-gitAUR

對於 Vulkan 程序開發，安裝 vulkan-headers包，以及可選的 vulkan-validation-layers包 與 vulkan-tools包 （你可以在這裡找到 vulkaninfo 工具）。

## 驗證

要查看系統上當前安裝了哪些 Vulkan 實現，請使用以下命令：

    $ ls /usr/share/vulkan/icd.d/

為確保 Vulkan 在你的硬體上工作，安裝 vulkan-tools包 並使用 `vulkaninfo` 命令調出你的系統信息。如果你得到了顯卡信息，就說明 Vulkan 在正常工作。

    $ vulkaninfo

訪問 https://linuxconfig.org/install-and-test-vulkan-on-linux 以獲取更多信息。

## 切換

### 在設備之間切換

在具有多個 GPU 的系統上，您可能需要強制使用特定 GPU。 vkdevicechooserAUR 提供了簡單的方法來做到這一點。它將安裝到系統的 Vulkan層 目錄， `/usr/share/vulkan/implicit_layer.d/`.

要運行強制使用特定設備的 Vulkan 應用程式，請使用以下環境變量啟動它：

    $ ENABLE_DEVICE_CHOOSER_LAYER=1 VULKAN_DEVICE_INDEX=device_index

需要用 `vulkaninfo` (沒有啟用圖層) 所報告的設備id`GPU id`替換`device_index`

注意：一些應用程式 (例如Steam) 可能會改變設備索引`device_index`。

### 在 AMD 驅動程序之間切換

在 AMD 系統上，一次安裝多個 Vulkan 驅動程序是有效的，可能需要在它們之間切換。

#### 通過 AMD Vulkan Prefixes 選擇

AMD Vulkan Prefixes是用於在兩種Vulkan實現之間切換的腳本。安裝 amd-vulkan-prefixesCNRepo ，並在運行程序前添加前綴。可添加的前綴有 `vk_radv` 與 `vk_pro` 。例如，使用 AMDGPU PRO驅動程序:

    $ vk_pro command

## 軟體渲染

您可以安裝名為lavapipe 的 Vulkan 光柵化軟體，例如用於調試硬體問題：vulkan-swrast包 。(或者它的32位版本lib32-vulkan-swrast包).

    $ LIBGL_ALWAYS_SOFTWARE=1 __GLX_VENDOR_LIBRARY_NAME=mesa VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/lvp_icd.i686.json:/usr/share/vulkan/icd.d/lvp_icd.x86_64.json vulkaninfo

## Vulkan 硬體資料庫

硬體資料庫提供了用戶報告的 GPU/驅動程序組。使用 vulkan-caps-viewer-waylandAUR 或 vulkan-caps-viewer-x11AUR 可以提供自己的信息。

## 疑難解答

### NVIDIA - vulkan 無法工作並無法初始化

檢查是否安裝了其他 vulkan 驅動程序，這可能會阻止 NVIDIA 的 vulkan 驅動程序被檢測到。

或者，設置環境變量 `VK_ICD_FILENAMES` 為 `/usr/share/vulkan/icd.d/nvidia_icd.json` 。

如果你有雙圖形系統，比如 NVIDIA Optimus ，確保你的系統使用的是安裝Vulkan驅動程序的顯卡。

這篇文章的某些內容需要擴充。

原因：optimus-manager 只是 NVIDIA Optimus 的幾個實用程序之一。 (在 Talk:Vulkan 中討論)

本文或本章節的語言、語法或風格需要改進。參考：幫助:風格

原因：Command in code block requires a prompt symbol.（在Talk:Vulkan討論）

    optimus-manager --status

    Optimus Manager (Client) version 1.4

    Current GPU mode : nvidia
    GPU mode requested for next login : no change
    GPU at startup : integrated
    Temporary config path: no

### 找不到顯示 GPU 的設備。是否安裝了 intel-mesa 驅動程序？

嘗試將 intel_icd 與 primus_vk_wrapper 兩者都配置進 VK_ICD_FILENAMES 列表

    export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/intel_icd.x86_64.json:/usr/share/vulkan/icd.d/nv_vulkan_wrapper.json

### 在 vulkaninfo 之後出現 AMDGPU - ERROR_INITIALIZATION_FAILED

如果在 GCN1 或 GCN2 系列的 AMD 卡上運行 `vulkaninfo` 後，你會收到如下錯誤消息：

    ERROR at /build/vulkan-tools/src/Vulkan-Tools-1.2.135/vulkaninfo/vulkaninfo.h:240:vkEnumerateInstanceExtensionProperties failed with ERROR_INITIALIZATION_FAILED

然後檢查你是否已正確啟用對此型號顯卡的支持（AMDGPU#開啟 Southern Islands (SI) 和 Sea Islands (CIK) 支持）。

可以使用 `lspci -k` 檢查 gpu 驅動程序是否已正確加載，在運行該命令後檢查內核驅動中關於 gpu 的信息，它應該是 `amdgpu`。

    $ lspci -k

    ...
    01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Curacao PRO [Radeon R7 370 / R9 270/370 OEM]
    	Subsystem: Gigabyte Technology Co., Ltd Device 226c
    	Kernel driver in use: amdgpu
    	Kernel modules: radeon, amdgpu
    ...

關於這個問題的一些論壇主題：[3] [4]

### 在拋出 'dxvk::DxvkError' 的實例後調用終止

同時擁有 AMD 和 NVIDIA 驅動程序可能會導致問題。檢查

    pacman -Qs vulkan

    local/lib32-amdvlk 2022.Q2.3-1
        AMD's standalone Vulkan driver
    local/lib32-nvidia-utils 515.57-1
        NVIDIA drivers utilities (32-bit)
    local/lib32-vulkan-icd-loader 1.3.221-1
        Vulkan Installable Client Driver (ICD) Loader (32-bit)
    local/nvidia-utils 515.57-1
        NVIDIA drivers utilities
    local/vulkan-icd-loader 1.3.221-1
        Vulkan Installable Client Driver (ICD) Loader
    local/vulkan-tools 1.3.217-1 (vulkan-devel)
        Vulkan Utilities and Tools

並刪除錯誤的驅動程序包。

### AMDGPU - Vulkan 應用程式啟動過慢

如果您安裝了cuda包 軟體包，您可能會發現 Vulkan 應用程式（例如 Chromium）啟動緩慢。這是因為 nvidia-utils包 提供了 Vulkan 驅動程序，而 Vulkan 會在 radeon 驅動程序之前嘗試 nvidia 驅動程序。要解決此問題，請將環境變量 `VK_DRIVER_FILES` 設置為 `/usr/share/vulkan/icd.d/radeon_icd.i686.json:/usr/share/vulkan/icd.d/radeon_icd.x86_64.json`。

分類：​

- 圖形
- 開發
- 使用「模板:風格」標記的頁面或章節

Vulkan
新增話題