「Vulkan」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(カテゴリを修正)
 
(6人の利用者による、間の20版が非表示)
1行目: 1行目:
[[Category:グラフィック]]
+
[[Category:グラフィック]]
 
[[Category:開発]]
 
[[Category:開発]]
 
[[en:Vulkan]]
 
[[en:Vulkan]]
  +
[[pt:Vulkan]]
  +
[[ru:Vulkan]]
  +
[[zh-hans:Vulkan]]
 
[[Wikipedia:ja:Vulkan]] より:
 
[[Wikipedia:ja:Vulkan]] より:
 
:Vulkan (旧名 "glNext") はオーバーヘッドが少ない、クロスプラットフォームなリアルタイム3次元コンピュータグラフィックス・コンピュート API である。
 
:Vulkan (旧名 "glNext") はオーバーヘッドが少ない、クロスプラットフォームなリアルタイム3次元コンピュータグラフィックス・コンピュート API である。
9行目: 12行目:
 
== インストール ==
 
== インストール ==
   
  +
{{Note|
Vulkan アプリを実行するには {{pkg|vulkan-icd-loader}} と、使用しているグラフィックカードの Vulkan ドライバーを[[インストール]]する必要があります:
 
  +
[[ハイブリッドグラフィック]] ([[NVIDIA Optimus]]/AMD Dynamic Switchable Graphics) の場合:
* Intel: {{Pkg|vulkan-intel}}
 
  +
* Vulkan は [[Bumblebee]] で公式ではサポートされていません。[https://github.com/Bumblebee-Project/Bumblebee/issues/769] を見てください。しかし、{{Pkg|primus_vk}} あるいは {{AUR|primus-vk-git}} により動作します。
* NVIDIA: {{pkg|nvidia}}
 
  +
* Radeon の Vulkan ドライバーは [[PRIME]] をサポートしています。[https://www.phoronix.com/scan.php?page=news_item&px=RADV-PRIME-Lands] を参照。
* AMD: {{pkg|vulkan-radeon}} (オープンソース) または {{AUR|amdgpu-pro-vulkan-driver}} (プロプライエタリ)
 
  +
}}
  +
  +
Vulkan アプリを実行するには {{pkg|vulkan-icd-loader}} と (32ビットのアプリケーションを実行したい場合は {{pkg|lib32-vulkan-icd-loader}} も)、使用しているグラフィックカードの Vulkan ドライバーを[[インストール]]する必要があります:
  +
  +
* [[Intel]]: {{Pkg|vulkan-intel}} (または {{Pkg|lib32-vulkan-intel}})
  +
* [[NVIDIA]]: {{pkg|nvidia}} (または {{Pkg|lib32-nvidia-utils}})
  +
* [[AMD]]: 3種類の実装があります。これらは複数同時にインストールできます:
  +
** {{Pkg|vulkan-radeon}} (または {{Pkg|lib32-vulkan-radeon}}) - RADV (Mesa プロジェクトの一部)
  +
** {{Pkg|amdvlk}} (または {{Pkg|lib32-amdvlk}}) - AMDVLK Open (AMD によるメンテナンス)
  +
** {{AUR|vulkan-amdgpu-pro}} (または {{AUR|lib32-vulkan-amdgpu-pro}}) - AMVDLK Closed (AMD によるメンテナンス)
   
 
他のドライバーはパッケージ化されていないので、手動でインストールしてください:
 
他のドライバーはパッケージ化されていないので、手動でインストールしてください:
  +
 
* PowerVR: https://imgtec.com/vulkan
 
* PowerVR: https://imgtec.com/vulkan
 
* Adreno: https://developer.qualcomm.com/software/adreno-gpu-sdk/gpu
 
* Adreno: https://developer.qualcomm.com/software/adreno-gpu-sdk/gpu
   
Vulkan アプリケーションを開発するには、{{pkg|vulkan-headers}} も必要になります。また、{{pkg|vulkan-validation-layers}} もインストールすると良いでしょう。
+
Vulkan アプリケーションを開発するには、{{pkg|vulkan-headers}} も必要になります。また、{{pkg|vulkan-validation-layers}} および {{Pkg|vulkan-tools}} もインストールすると良いでしょう (''vulkaninfo'' ツールが含まれています)
   
  +
== 検証 ==
ドライバーをインストールしたら、{{aur|vulkan-caps-viewer}} を実行することで GPU とドライバーのスペックを [http://vulkan.gpuinfo.org/ vulkan.gpuinfo.org] で共有することができます。
 
   
  +
システムに現在インストールされている Vulkan 実装を確認するには、次のコマンドを使用します。
== トラブルシューティング ==
 
   
  +
$ ls /usr/share/vulkan/icd.d/
=== Error - vulkan: No DRI3 support ===
 
   
  +
Vulkan がハードウェアで動作していることを確認するには、{{Pkg|vulkan-tools}} を[[インストール]]し、{{ic|vulkaninfo}} を使って関連情報をシステムから抜き出します。グラフックスカードの情報を手に入れれば、Vulkan が動作していることを知ることができます。
上記のメッセージが表示される場合、以下の内容のファイルを作成して X を再起動してください。Wayland では以下の設定は必要ありません。
 
   
  +
$ vulkaninfo
{{hc|/etc/X11/xorg.conf.d/20-intel.conf|
 
  +
Section "Device"
 
  +
さらなる情報は https://linuxconfig.org/install-and-test-vulkan-on-linux で見ることができます。
Identifier "Intel Graphics"
 
  +
Driver "intel"
 
  +
=== AMD ドライバを切り替える ===
Option "DRI" "3"
 
  +
EndSection}}
 
  +
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 ソフトウェア ==
  +
  +
lavapipe として知られるソフトウェア Vulkan ラスタライザーをインストールすることもできます: {{Pkg|vulkan-swrast}} 現時点では (AUR であっても) 32 ビットの ''vulkan-swast'' パッケージはありません。
  +
  +
$ 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 ハードウェアデータベース ==
  +
  +
[https://vulkan.gpuinfo.org/ Vulkan Hardware Database] には、ユーザーが報告した GPU/ドライバーの組み合わせが提供されています。独自の情報を指定するには、{{AUR|vulkan-caps-viewer-wayland}} または {{AUR|vulkan-caps-viewer-x11}} を使用します。
  +
  +
== トラブルシューティング ==
   
 
=== Nvidia - vulkan が動作せず初期化できない ===
 
=== Nvidia - vulkan が動作せず初期化できない ===
   
 
{{pkg|vulkan-intel}} がインストールされていないか確認してください。インストールされていると Nvidia の vulkan ドライバーが認識されないことがあります。
 
{{pkg|vulkan-intel}} がインストールされていないか確認してください。インストールされていると Nvidia の vulkan ドライバーが認識されないことがあります。
  +
  +
あるいは、[[環境変数]] {{ic|VK_ICD_FILENAMES}} を {{ic|/usr/share/vulkan/icd.d/nvidia_icd.json}} に設定してください。
  +
  +
[[NVIDIA Optimus]] などのデュアルグラフィックシステムを使用している場合は、Vulkan ドライバーをインストールしたグラフィックカードがシステムで使用されていることを確認してください。
  +
  +
{{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
  +
}}
  +
  +
=== 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]
  +
  +
=== 'dxvk::DxvkError' のインスタンス後に呼び出される終了処理 ===
  +
  +
AMD ドライバーと NVIDIA ドライバーの両方を使用すると、問題が発生する可能性があり確認します。
  +
  +
{{hc|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 - 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 ドライバーに切り替えるか有効にすると、問題が解決します。

2024年9月3日 (火) 22:42時点における最新版

Wikipedia:ja:Vulkan より:

Vulkan (旧名 "glNext") はオーバーヘッドが少ない、クロスプラットフォームなリアルタイム3次元コンピュータグラフィックス・コンピュート API である。

詳しくは 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 ドライバーをインストールする必要があります:

他のドライバーはパッケージ化されていないので、手動でインストールしてください:

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 で見ることができます。

AMD ドライバを切り替える

AMD のシステム上では、一度に複数の Vulkan ドライバをインストールすることができます。なので、それらを切り替えたい場合があります。

環境変数で選択する

ノート: この方法は AMDVLK クローズドドライバの選択をサポートしません。

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_radvvk_amdvlk、そして vk_pro です。例えば、AMDVLK クローズドドライバを使用するには:

$ vk_pro command

Vulkan: lavapipe ソフトウェア

lavapipe として知られるソフトウェア Vulkan ラスタライザーをインストールすることもできます: vulkan-swrast 現時点では (AUR であっても) 32 ビットの vulkan-swast パッケージはありません。

$ 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 ハードウェアデータベース

Vulkan Hardware Database には、ユーザーが報告した GPU/ドライバーの組み合わせが提供されています。独自の情報を指定するには、vulkan-caps-viewer-waylandAUR または vulkan-caps-viewer-x11AUR を使用します。

トラブルシューティング

Nvidia - vulkan が動作せず初期化できない

vulkan-intel がインストールされていないか確認してください。インストールされていると Nvidia の vulkan ドライバーが認識されないことがあります。

あるいは、環境変数 VK_ICD_FILENAMES/usr/share/vulkan/icd.d/nvidia_icd.json に設定してください。

NVIDIA Optimus などのデュアルグラフィックシステムを使用している場合は、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

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]

'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 - 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#284118id=283008 BBS#283008BBS#274737): Radeon-Vulkan ドライバーに切り替えるか有効にすると、問題が解決します。