「Vulkan」の版間の差分
(同期) |
細 |
||
| (7人の利用者による、間の23版が非表示) | |||
| 1行目: | 1行目: | ||
| − | [[Category:グラフィック]] |
+ | [[Category:グラフィックス]] |
[[Category:開発]] |
[[Category:開発]] |
||
[[en:Vulkan]] |
[[en:Vulkan]] |
||
| + | [[pt:Vulkan]] |
||
| + | [[ru:Vulkan]] |
||
| + | [[zh-hans:Vulkan]] |
||
[[Wikipedia:ja:Vulkan]] より: |
[[Wikipedia:ja:Vulkan]] より: |
||
| − | :Vulkan |
+ | :Vulkanは、低オーバーヘッドのクロスプラットフォーム3DグラフィックスおよびコンピュートAPIです。2016年に初めてリリースされ、[[OpenGL]] の後継として登場しました。 |
詳しくは [https://www.khronos.org/vulkan/ Khronos] のウェブサイトを参照してください。 |
詳しくは [https://www.khronos.org/vulkan/ Khronos] のウェブサイトを参照してください。 |
||
| 9行目: | 12行目: | ||
== インストール == |
== インストール == |
||
| + | {{Note|[[ハイブリッドグラフィック]] ([[NVIDIA Optimus]]/AMD Dynamic Switchable Graphics) の場合: |
||
| − | {{Note| |
||
| + | * Vulkan は [[Bumblebee]] で公式ではサポートされていません。[https://github.com/Bumblebee-Project/Bumblebee/issues/769] を見てください。しかし、{{Pkg|primus_vk}} により動作します。 |
||
| − | [[ハイブリッドグラフィック]] ([[NVIDIA Optimus]]/AMD Dynamic Switchable Graphics) の場合: |
||
| − | * Vulkan は [[ |
+ | * Radeon の Vulkan ドライバーは [[PRIME]] をサポートしています。[https://www.phoronix.com/scan.php?page=news_item&px=RADV-PRIME-Lands] を参照。 |
| − | * Radeon の Vulkan ドライバーは [[PRIME]] をサポートしています。[http://www.phoronix.com/scan.php?page=news_item&px=RADV-PRIME-Lands] を参照。 |
||
}} |
}} |
||
| − | Vulkan アプリを実行するには {{pkg|vulkan-icd-loader}} と、使用しているグラフィックカードの Vulkan ドライバーを[[インストール]]する必要があります: |
+ | Vulkan アプリを実行するには {{pkg|vulkan-icd-loader}} と (32ビットのアプリケーションを実行したい場合は {{pkg|lib32-vulkan-icd-loader}} も)、使用しているグラフィックカードの Vulkan ドライバーを[[インストール]]する必要があります: |
| − | * [[Intel]]: {{Pkg|vulkan-intel}} |
||
| − | * [[NVIDIA]]: {{pkg|nvidia}} |
||
| − | *AMD: {{pkg|vulkan-radeon}} ([[radeon]], [[AMDGPU]] [https://www.phoronix.com/scan.php?page=news_item&px=RADV-Vulkan-CTS-Conformant]) または {{AUR|amdgpu-pro-vulkan}} ([[AMDGPU PRO]]) |
||
| + | * [[AMD]]: {{Pkg|vulkan-radeon}} (または {{Pkg|lib32-vulkan-radeon}}) |
||
| − | 他のドライバーはパッケージ化されていないので、手動でインストールしてください: |
||
| + | * [[Intel]]: {{Pkg|vulkan-intel}} (または {{Pkg|lib32-vulkan-intel}}) |
||
| − | * PowerVR: https://imgtec.com/vulkan |
||
| + | * [[NVIDIA]]: 二種類の実装があります: |
||
| − | * Adreno: https://developer.qualcomm.com/software/adreno-gpu-sdk/gpu |
||
| + | ** {{Pkg|nvidia-utils}}(または {{Pkg|lib32-nvidia-utils}}) - NVIDIA製(プロプライエタリ) |
||
| + | ** {{Pkg|vulkan-nouveau}}(または {{Pkg|lib32-vulkan-nouveau}}) - NVK(Mesaプロジェクトの一部){{Note|NVKを有効にするには、追加のシステム設定が必要です。詳細については、[[Nouveau#Using the Mesa NVK Vulkan Driver]] をご覧ください。}} |
||
| + | 以下はソフトウェアラスタライザーで、Vulkanサポートを提供しないデバイスで使用することができます。 |
||
| − | Vulkan アプリケーションを開発するには、{{pkg|vulkan-headers}} も必要になります。また、{{pkg|vulkan-validation-layers}} もインストールすると良いでしょう。 |
||
| + | * '''Lavapipe''': {{Pkg|vulkan-swrast}}(または {{Pkg|lib32-vulkan-swrast}}) |
||
| − | ==Vulkan ハードウェアデータベース== |
||
| + | * '''SwiftShader''': {{AUR|swiftshader-git}} |
||
| + | Vulkan アプリケーション開発には、{{Pkg|vulkan-headers}} を[[インストール]]し、オプションで {{Pkg|vulkan-validation-layers}}、{{AUR|vulkan-man-pages}}、および {{Pkg|vulkan-tools}} をインストールできます(vulkaninfo や vkcube ツールが含まれています) |
||
| − | ドライバーをインストールしたら、{{aur|vulkan-caps-viewer}} を実行することで GPU とドライバーのスペックを [http://vulkan.gpuinfo.org/ vulkan.gpuinfo.org] で共有することができます。 |
||
| + | |||
| + | == 検証 == |
||
| + | |||
| + | システムに現在インストールされている Vulkan 実装を確認するには、次のコマンドを使用します。 |
||
| + | |||
| + | $ ls /usr/share/vulkan/icd.d/ |
||
| + | |||
| + | Vulkan がハードウェアで動作していることを確認するには、{{Pkg|vulkan-tools}} を[[インストール]]し、{{ic|vulkaninfo}} を使って関連情報をシステムから抜き出します。グラフックスカードの情報を手に入れれば、Vulkan が動作していることを知ることができます。 |
||
| + | |||
| + | $ vulkaninfo |
||
| + | |||
| + | さらなる情報は https://linuxconfig.org/install-and-test-vulkan-on-linux で見ることができます。 |
||
| + | |||
| + | == 切り替え == |
||
| + | |||
| + | === デバイス間の切り替え === |
||
| + | |||
| + | 複数の GPU を搭載したシステムでは、特定の GPU の使用を強制する必要がある場合があります。これを動作させるには、{{Pkg|vulkan-mesa-layers}} が必要です。{{ic|MESA_VK_DEVICE_SELECT}} を {{ic|''vendorID:deviceID''}} に設定することで、希望する GPU を選択できます。 |
||
| + | |||
| + | 候補を一覧表示するには、以下のコマンドを使用します: |
||
| + | |||
| + | $ MESA_VK_DEVICE_SELECT=list vulkaninfo |
||
| + | |||
| + | 指定した値の末尾に {{ic|!}} を付けることで、この動作を強制することができます。詳細については、[https://docs.mesa3d.org/envvars.html#vulkan-mesa-device-select-layer-environment-variables Vulkan mesa device select layer environment variables] を参照してください。 |
||
| + | |||
| + | === AMD ドライバを切り替える === |
||
| + | |||
| + | AMD のシステム上では、一度に複数の Vulkan ドライバをインストールすることができます。なので、それらを切り替えたい場合があります。 |
||
| + | |||
| + | ==== 環境変数で選択する ==== |
||
| + | |||
| + | {{Note|この方法は AMDVLK クローズドドライバの選択をサポートしません。}} |
||
| + | |||
| + | {{Pkg|amdvlk}} 2021.Q3.4 以降、新しい切り替えロジックが実装されました。これにより、AMDVLK がデフォルトとなり、以下のいずれかを行う必要があります: |
||
| + | |||
| + | * {{ic|1=AMD_VULKAN_ICD=RADV}} を設定し、AMDVLK のデフォルトから他のものに切り替える。 |
||
| + | * あるいは、グローバルに {{ic|1=DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1}} を設定し、以下の ICD ローダの方法を再有効化する。 |
||
| + | |||
| + | {{ic|1=DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1}} が設定されると、{{ic|VK_ICD_FILENAMES}} 環境変数を設定することによりドライバを選択することができます。例えば、[[Steam]] を RADV ドライバで実行するようにするには: |
||
| + | |||
| + | $ VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/radeon_icd.i686.json:/usr/share/vulkan/icd.d/radeon_icd.x86_64.json steam |
||
| + | |||
| + | 32 ビットのゲームのクラッシュを回避するために、32 ビット版と 64 ビットを環境変数に割り当てることができます。 |
||
| + | |||
| + | ==== AMD Vulkan Prefixes で選択する ==== |
||
| + | |||
| + | [https://gitlab.com/AndrewShark/amd-vulkan-prefixes AMD Vulkan Prefixes] は3つの Vulkan 実装を切り替えるためのスクリプトです。{{AUR|amd-vulkan-prefixes}} を[[インストール]]し、アプリケーションの前にお望みの接頭辞を付けてください。提供される実行ファイルは {{ic|vk_radv}}、{{ic|vk_amdvlk}}、そして {{ic|vk_pro}} です。例えば、AMDVLK クローズドドライバを使用するには: |
||
| + | |||
| + | $ vk_pro ''command'' |
||
| + | |||
| + | == ソフトウェアレンダリング == |
||
| + | |||
| + | ソフトウェア Vulkan ラスタライザーとして知られる lavapipe をインストールすることができます。例えば、ハードウェアの問題をデバッグするために使用します: {{Pkg|vulkan-swrast}} (または32ビット版の {{Pkg|lib32-vulkan-swrast}}) |
||
| + | |||
| + | 以下の例は、必要な環境変数を設定して、Vulkan と [[OpenGL#Mesa|OpenGL]] の完全なソフトウェアレンダリングを強制するために ''vulkaninfo'' を実行する方法を示しています ({{ic|1=__GLX_VENDOR_LIBRARY_NAME=mesa}} により、コマンドが [[PRIME]] ユーザーにも動作するようになります): |
||
| + | |||
| + | $ LIBGL_ALWAYS_SOFTWARE=1 __GLX_VENDOR_LIBRARY_NAME=mesa VK_DRIVER_FILES=/usr/share/vulkan/icd.d/lvp_icd.i686.json:/usr/share/vulkan/icd.d/lvp_icd.x86_64.json vulkaninfo |
||
| + | |||
| + | == Vulkan ハードウェアデータベース == |
||
| + | |||
| + | [https://vulkan.gpuinfo.org/ Vulkan Hardware Database] には、ユーザーが報告した GPU/ドライバーの組み合わせが提供されています。独自の情報を指定するには、{{AUR|vulkan-caps-viewer-wayland}} または {{AUR|vulkan-caps-viewer-x11}} を使用します。 |
||
== トラブルシューティング == |
== トラブルシューティング == |
||
| − | === |
+ | === NVIDIA - vulkanが動作しない、または初期化できない === |
| + | |||
| + | ==== 環境変数 ==== |
||
| + | |||
| + | 無効または矛盾する[[環境変数]]の値が原因で、Vulkan が失敗することがあります。不適切な値は、複数の GPU が搭載されたマシンで意図した GPU ではなく別の GPU を使用する原因となることもあります。環境変数を適切に設定することで、[https://bbs.archlinux.org/viewtopic.php?pid=2152232#p2152232 必要ないときにセカンダリ GPU を電源オフにする]のにも役立ちます。 |
||
| + | |||
| + | ==== GPU の切り替え ==== |
||
| + | |||
| + | マシンに複数の GPU が搭載されていて、Vulkan がそのうちの1つを認識できない場合、その GPU が BIOS/UEFI やカーネルで無効にされていないことを確認してください。GPU 間の切り替え方法の概要については [[NVIDIA Optimus]] を参照してください。 |
||
| + | |||
| + | 現在の状態を確認するための例コマンド({{aur|optimus-manager-git}} を使用): |
||
| + | |||
| + | {{hc|$ 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 |
||
| + | }} |
||
| + | |||
| + | ==== GSPファームウェア ==== |
||
| + | |||
| + | [https://download.nvidia.com/XFree86/Linux-x86_64/555.42.02/README/gsp.html GSP ファームウェア]は、2024年6月にリリースされた NVIDIA ドライバのバージョン555以降、デフォルトで有効になっており、[https://bbs.archlinux.org/viewtopic.php?pid=2181317 Vulkan の失敗やシステムクラッシュを含むさまざまな問題]の原因として知られています。 |
||
| + | |||
| + | これを無効にするには、{{ic|1=NVreg_EnableGpuFirmware=0}} [[モジュールパラメータ]]を{{ic|nvidia}}カーネルモジュールに設定します。これは独自の NVIDIA ドライバでのみ機能します:オープンソースドライバから切り替える場合は[[NVIDIA#インストール]] を参照してください。 |
||
| + | |||
| + | 必要に応じて [[initramfs の再生成]] を行うことを忘れないでください。この新しいカーネルモジュールオプションを有効にするには、再起動が必要です。 |
||
| + | |||
| + | === No device for the display GPU found. Are the intel-mesa drivers installed? === |
||
| + | |||
| + | 環境変数 VK_ICD_FILENAMES に intel_icd と primus_vk_wrapper の両方のセットしてみてください。 |
||
| + | |||
| + | export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/intel_icd.x86_64.json:/usr/share/vulkan/icd.d/primus_vk_wrapper.json |
||
| + | |||
| + | === AMDGPU - vulkaninfo 後に ERROR_INITIALIZATION_FAILED === |
||
| + | |||
| + | GCN1 または GCN2 ファミリの AMD カードで {{ic|vulkaninfo}} を実行した後、次のようなエラーメッセージが表示された場合: |
||
| + | {{bc|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) のサポートを有効化]]) |
||
| + | |||
| + | GPU ドライバーが正しくロードされているかどうかを確認する方法の 1 つは、{{ic|lspci -k}} です。このコマンドを実行した後、GPU のカーネル ドライバーを確認してください。{{ic|amdgpu}} である必要があります。 |
||
| + | |||
| + | {{hc|$ 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 |
||
| + | ... |
||
| + | }} |
||
| + | |||
| + | この問題に関するいくつかのフォーラム スレッド: [https://bbs.archlinux.org/viewtopic.php?id=254015] [https://bbs.archlinux.org/viewtopic.php?id=253843] |
||
| + | |||
| + | === AMDGPU - DirectX Vulkan ゲームのプレイ中にがハングする === |
||
| + | |||
| + | DirectX Vulkan を使用して一部のゲームをプレイすると、Radeon-Vulkan がドライバーや GPU のハングを引き起こすようです。 |
||
| + | |||
| + | {{bc| |
||
| + | kernel: [drm:amdgpu_dm_atomic_commit_tail [amdgpu]] *ERROR* Waiting for fences timed out! |
||
| + | kernel: [drm:amdgpu_job_timedout [amdgpu]] *ERROR* ring gfx_0.0.0 timeout, signaled ..., emitted ... |
||
| + | kernel: [drm:amdgpu_job_timedout [amdgpu]] *ERROR* Process information: process ... pid ... thread dxvk-submit pid |
||
| + | ... |
||
| + | }} |
||
| + | |||
| + | AMDVLK に切り替えるか有効にすると、問題が解決されるようです。 |
||
| + | |||
| + | === AMDGPU - DirectX Vulkan ゲームでクラッシュする === |
||
| + | |||
| + | AMDVLK は複数のユーザーによるクラッシュを引き起こすと報告されています ([https://bbs.archlinux.org/viewtopic.php?id=284118 BBS#284118]、[https://bbs.archlinux.org/viewtopic.php? id=283008 BBS#283008]、[https://bbs.archlinux.org/viewtopic.php?id=274737 BBS#274737]): Radeon-Vulkan ドライバーに切り替えるか有効にすると、問題が解決します。 |
||
| + | |||
| + | === AMDGPU - Vulkan アプリケーションの起動が遅い === |
||
| + | |||
| + | {{Pkg|cuda}} をインストールすると、例えば Chromium などの Vulkan アプリケーションの起動が遅いことがあります。これは、{{Pkg|nvidia-utils}} が Vulkan ドライバを提供しており、Vulkan が最初に nvidia ドライバを試み、その後に radeon ドライバを試すためです。これを解決するには、[[環境変数]] {{ic|VK_DRIVER_FILES}} を {{ic|/usr/share/vulkan/icd.d/radeon_icd.i686.json:/usr/share/vulkan/icd.d/radeon_icd.x86_64.json}} に設定します。 |
||
| + | |||
| + | === AMDGPU - Found no drivers! === |
||
| + | |||
| + | {{ic|Found no drivers!}} に遭遇した場合: |
||
| + | |||
| + | {{hc|$ vulkaninfo| |
||
| + | WARNING: [Loader Message] Code 0 : terminator_CreateInstance: Failed to CreateInstance in ICD 0. Skipping ICD. |
||
| + | ERROR: [Loader Message] Code 0 : terminator_CreateInstance: Found no drivers! |
||
| + | Cannot create Vulkan instance. |
||
| + | This problem is often caused by a faulty installation of the Vulkan driver or attempting to use a GPU that does not support Vulkan. |
||
| + | ERROR at /usr/src/debug/vulkan-tools/Vulkan-Tools-1.3.269/vulkaninfo/./vulkaninfo.h:688:vkCreateInstance failed with ERROR_INCOMPATIBLE_DRIVER |
||
| + | }} |
||
| + | |||
| + | AMD は定期的に [https://www.phoronix.com/news/AMDVLK-2021.Q2.6 pre-Polaris] および [https://www.phoronix.com/news/Mesa-24.0-Faster-RADV-Vega Vega] のサポートを終了しています。もしあなたの GPU のサポートが{{Pkg|amdvlk}} から削除された場合は、[[アンインストール]] して、{{Pkg|vulkan-radeon}} を[[インストール]]してください。 |
||
| + | |||
| + | === Bcachefs ルートで32ビットアプリケーションがドライバを見つけられない === |
||
| + | Bcachefs には32ビットプログラムとの互換性の問題があり、このファイルシステムをルートとして使用している場合、Vulkan ICD ローダーがドライバを見つけることができなくなります([[Bcachefs#32-bit programs cannot see directory contents]]) |
||
| − | 上記のメッセージが表示される場合、以下の内容のファイルを作成して X を再起動してください。Wayland では以下の設定は必要ありません。 |
||
| + | この問題は、検索されるパスの1つに別のファイルシステムをマウントし、そのデータをコピーすることで回避できます。 |
||
| − | {{hc|/etc/X11/xorg.conf.d/20-intel.conf| |
||
| − | Section "Device" |
||
| − | Identifier "Intel Graphics" |
||
| − | Driver "intel" |
||
| − | Option "DRI" "3" |
||
| − | EndSection}} |
||
| + | {{Warning|マウントされたファイルシステムはそのディレクトリをオーバーレイし、元の内容を Pacman やあなたが読み書きできないようにします。{{ic|/usr/share/vulkan}} 上にマウントしないでください。パッケージの変更や更新はマウントされたファイルシステム内のファイルのみを変更するため、アンマウント時に破損を引き起こす可能性があります。}} |
||
| − | === Nvidia - vulkan が動作せず初期化できない === |
||
| + | # mkdir -p /usr/local/share/vulkan |
||
| − | {{pkg|vulkan-intel}} がインストールされていないか確認してください。インストールされていると Nvidia の vulkan ドライバーが認識されないことがあります。 |
||
| + | # mount -t tmpfs foo /usr/local/share/vulkan |
||
| + | # cp -r /usr/share/vulkan/* /usr/local/share/vulkan |
||
2025年12月4日 (木) 17:58時点における最新版
- Vulkanは、低オーバーヘッドのクロスプラットフォーム3DグラフィックスおよびコンピュートAPIです。2016年に初めてリリースされ、OpenGL の後継として登場しました。
詳しくは Khronos のウェブサイトを参照してください。
目次
- 1 インストール
- 2 検証
- 3 切り替え
- 4 ソフトウェアレンダリング
- 5 Vulkan ハードウェアデータベース
- 6 トラブルシューティング
- 6.1 NVIDIA - vulkanが動作しない、または初期化できない
- 6.2 No device for the display GPU found. Are the intel-mesa drivers installed?
- 6.3 AMDGPU - vulkaninfo 後に ERROR_INITIALIZATION_FAILED
- 6.4 AMDGPU - DirectX Vulkan ゲームのプレイ中にがハングする
- 6.5 AMDGPU - DirectX Vulkan ゲームでクラッシュする
- 6.6 AMDGPU - Vulkan アプリケーションの起動が遅い
- 6.7 AMDGPU - Found no drivers!
- 6.8 Bcachefs ルートで32ビットアプリケーションがドライバを見つけられない
インストール
Vulkan アプリを実行するには vulkan-icd-loader と (32ビットのアプリケーションを実行したい場合は lib32-vulkan-icd-loader も)、使用しているグラフィックカードの Vulkan ドライバーをインストールする必要があります:
- AMD: vulkan-radeon (または lib32-vulkan-radeon)
- Intel: vulkan-intel (または lib32-vulkan-intel)
- NVIDIA: 二種類の実装があります:
- nvidia-utils(または lib32-nvidia-utils) - NVIDIA製(プロプライエタリ)
- vulkan-nouveau(または lib32-vulkan-nouveau) - NVK(Mesaプロジェクトの一部)
以下はソフトウェアラスタライザーで、Vulkanサポートを提供しないデバイスで使用することができます。
- Lavapipe: vulkan-swrast(または lib32-vulkan-swrast)
- SwiftShader: swiftshader-gitAUR
Vulkan アプリケーション開発には、vulkan-headers をインストールし、オプションで vulkan-validation-layers、vulkan-man-pagesAUR、および vulkan-tools をインストールできます(vulkaninfo や vkcube ツールが含まれています)
検証
システムに現在インストールされている Vulkan 実装を確認するには、次のコマンドを使用します。
$ ls /usr/share/vulkan/icd.d/
Vulkan がハードウェアで動作していることを確認するには、vulkan-tools をインストールし、vulkaninfo を使って関連情報をシステムから抜き出します。グラフックスカードの情報を手に入れれば、Vulkan が動作していることを知ることができます。
$ vulkaninfo
さらなる情報は https://linuxconfig.org/install-and-test-vulkan-on-linux で見ることができます。
切り替え
デバイス間の切り替え
複数の GPU を搭載したシステムでは、特定の GPU の使用を強制する必要がある場合があります。これを動作させるには、vulkan-mesa-layers が必要です。MESA_VK_DEVICE_SELECT を vendorID:deviceID に設定することで、希望する GPU を選択できます。
候補を一覧表示するには、以下のコマンドを使用します:
$ MESA_VK_DEVICE_SELECT=list vulkaninfo
指定した値の末尾に ! を付けることで、この動作を強制することができます。詳細については、Vulkan mesa device select layer environment variables を参照してください。
AMD ドライバを切り替える
AMD のシステム上では、一度に複数の Vulkan ドライバをインストールすることができます。なので、それらを切り替えたい場合があります。
環境変数で選択する
amdvlk 2021.Q3.4 以降、新しい切り替えロジックが実装されました。これにより、AMDVLK がデフォルトとなり、以下のいずれかを行う必要があります:
AMD_VULKAN_ICD=RADVを設定し、AMDVLK のデフォルトから他のものに切り替える。- あるいは、グローバルに
DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1を設定し、以下の ICD ローダの方法を再有効化する。
DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1 が設定されると、VK_ICD_FILENAMES 環境変数を設定することによりドライバを選択することができます。例えば、Steam を RADV ドライバで実行するようにするには:
$ VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/radeon_icd.i686.json:/usr/share/vulkan/icd.d/radeon_icd.x86_64.json steam
32 ビットのゲームのクラッシュを回避するために、32 ビット版と 64 ビットを環境変数に割り当てることができます。
AMD Vulkan Prefixes で選択する
AMD Vulkan Prefixes は3つの Vulkan 実装を切り替えるためのスクリプトです。amd-vulkan-prefixesAUR をインストールし、アプリケーションの前にお望みの接頭辞を付けてください。提供される実行ファイルは vk_radv、vk_amdvlk、そして vk_pro です。例えば、AMDVLK クローズドドライバを使用するには:
$ vk_pro command
ソフトウェアレンダリング
ソフトウェア Vulkan ラスタライザーとして知られる lavapipe をインストールすることができます。例えば、ハードウェアの問題をデバッグするために使用します: vulkan-swrast (または32ビット版の lib32-vulkan-swrast)
以下の例は、必要な環境変数を設定して、Vulkan と OpenGL の完全なソフトウェアレンダリングを強制するために vulkaninfo を実行する方法を示しています (__GLX_VENDOR_LIBRARY_NAME=mesa により、コマンドが PRIME ユーザーにも動作するようになります):
$ LIBGL_ALWAYS_SOFTWARE=1 __GLX_VENDOR_LIBRARY_NAME=mesa VK_DRIVER_FILES=/usr/share/vulkan/icd.d/lvp_icd.i686.json:/usr/share/vulkan/icd.d/lvp_icd.x86_64.json vulkaninfo
Vulkan ハードウェアデータベース
Vulkan Hardware Database には、ユーザーが報告した GPU/ドライバーの組み合わせが提供されています。独自の情報を指定するには、vulkan-caps-viewer-waylandAUR または vulkan-caps-viewer-x11AUR を使用します。
トラブルシューティング
NVIDIA - vulkanが動作しない、または初期化できない
環境変数
無効または矛盾する環境変数の値が原因で、Vulkan が失敗することがあります。不適切な値は、複数の GPU が搭載されたマシンで意図した GPU ではなく別の GPU を使用する原因となることもあります。環境変数を適切に設定することで、必要ないときにセカンダリ GPU を電源オフにするのにも役立ちます。
GPU の切り替え
マシンに複数の GPU が搭載されていて、Vulkan がそのうちの1つを認識できない場合、その GPU が BIOS/UEFI やカーネルで無効にされていないことを確認してください。GPU 間の切り替え方法の概要については NVIDIA Optimus を参照してください。
現在の状態を確認するための例コマンド(optimus-manager-gitAUR を使用):
$ 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
GSPファームウェア
GSP ファームウェアは、2024年6月にリリースされた NVIDIA ドライバのバージョン555以降、デフォルトで有効になっており、Vulkan の失敗やシステムクラッシュを含むさまざまな問題の原因として知られています。
これを無効にするには、NVreg_EnableGpuFirmware=0 モジュールパラメータをnvidiaカーネルモジュールに設定します。これは独自の NVIDIA ドライバでのみ機能します:オープンソースドライバから切り替える場合はNVIDIA#インストール を参照してください。
必要に応じて initramfs の再生成 を行うことを忘れないでください。この新しいカーネルモジュールオプションを有効にするには、再起動が必要です。
No device for the display GPU found. Are the intel-mesa drivers installed?
環境変数 VK_ICD_FILENAMES に intel_icd と primus_vk_wrapper の両方のセットしてみてください。
export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/intel_icd.x86_64.json:/usr/share/vulkan/icd.d/primus_vk_wrapper.json
AMDGPU - vulkaninfo 後に 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) のサポートを有効化)
GPU ドライバーが正しくロードされているかどうかを確認する方法の 1 つは、lspci -k です。このコマンドを実行した後、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]
AMDGPU - DirectX Vulkan ゲームのプレイ中にがハングする
DirectX Vulkan を使用して一部のゲームをプレイすると、Radeon-Vulkan がドライバーや GPU のハングを引き起こすようです。
kernel: [drm:amdgpu_dm_atomic_commit_tail [amdgpu]] *ERROR* Waiting for fences timed out! kernel: [drm:amdgpu_job_timedout [amdgpu]] *ERROR* ring gfx_0.0.0 timeout, signaled ..., emitted ... kernel: [drm:amdgpu_job_timedout [amdgpu]] *ERROR* Process information: process ... pid ... thread dxvk-submit pid ...
AMDVLK に切り替えるか有効にすると、問題が解決されるようです。
AMDGPU - DirectX Vulkan ゲームでクラッシュする
AMDVLK は複数のユーザーによるクラッシュを引き起こすと報告されています (BBS#284118、id=283008 BBS#283008、BBS#274737): Radeon-Vulkan ドライバーに切り替えるか有効にすると、問題が解決します。
AMDGPU - Vulkan アプリケーションの起動が遅い
cuda をインストールすると、例えば Chromium などの Vulkan アプリケーションの起動が遅いことがあります。これは、nvidia-utils が Vulkan ドライバを提供しており、Vulkan が最初に nvidia ドライバを試み、その後に radeon ドライバを試すためです。これを解決するには、環境変数 VK_DRIVER_FILES を /usr/share/vulkan/icd.d/radeon_icd.i686.json:/usr/share/vulkan/icd.d/radeon_icd.x86_64.json に設定します。
AMDGPU - Found no drivers!
Found no drivers! に遭遇した場合:
$ vulkaninfo
WARNING: [Loader Message] Code 0 : terminator_CreateInstance: Failed to CreateInstance in ICD 0. Skipping ICD. ERROR: [Loader Message] Code 0 : terminator_CreateInstance: Found no drivers! Cannot create Vulkan instance. This problem is often caused by a faulty installation of the Vulkan driver or attempting to use a GPU that does not support Vulkan. ERROR at /usr/src/debug/vulkan-tools/Vulkan-Tools-1.3.269/vulkaninfo/./vulkaninfo.h:688:vkCreateInstance failed with ERROR_INCOMPATIBLE_DRIVER
AMD は定期的に pre-Polaris および Vega のサポートを終了しています。もしあなたの GPU のサポートがamdvlk から削除された場合は、アンインストール して、vulkan-radeon をインストールしてください。
Bcachefs ルートで32ビットアプリケーションがドライバを見つけられない
Bcachefs には32ビットプログラムとの互換性の問題があり、このファイルシステムをルートとして使用している場合、Vulkan ICD ローダーがドライバを見つけることができなくなります(Bcachefs#32-bit programs cannot see directory contents)
この問題は、検索されるパスの1つに別のファイルシステムをマウントし、そのデータをコピーすることで回避できます。
# mkdir -p /usr/local/share/vulkan # mount -t tmpfs foo /usr/local/share/vulkan # cp -r /usr/share/vulkan/* /usr/local/share/vulkan