この節に雑多な内容が羅列されています。事項を箇条書きで列挙しただけの節は、本文として組み入れるか、または整理・除去する必要があります。(2021年3月)
ウィキペディアはオンライン百科事典であって、情報を無差別に収集する場ではありません。改善やノートページでの議論にご協力ください。(2021年3月)
Vulkanの公式ソフトウェア開発キット (SDK) として、Valve社の協力のもとLunarG(英語版)社がLunarG Vulkan SDKをリリースしている。同SDKはWindows、Linux、およびmacOSに対応している。macOSに関しては後述のMoltenVKを間接的に利用している[13]。このSDKはiOSには対応していない。
また、Vulkanに対応するデバイスドライバーや独自のSDK開発を所望するベンダー向けに、ICD (Installable Client Driver) ローダーやアーキテクチャに関するドキュメントがGitHubにて公開されている。
Androidにおいては、2016年6月にリリースされたリビジョン12以降のNDKでVulkan 1.0に正式対応している[14]。なお、Android 10ではベンダードライバーによるOpenGL ES実装以外に、後述するVulkanバックエンドのANGLEを利用したOpenGL ES 2.0互換実装も利用できるようになっている[15]。 Vulkan APIの制定元であるKhronos GroupはVulkan APIをAppleのMetal API上で使うための互換レイヤー「MoltenVK
補助ライブラリ
GLFW(英語版) - OpenGL向けのマルチプラットフォームライブラリであるが、バージョン3.2以降でVulkanにも対応した[16]。
vulkan-cpp - Googleの提供するVulkan用のC++向け抽象化ライブラリ[17]。ライセンスはApache License 2.0。
V-EZ - AMDの提供するVulkan用の簡略化ミドルウェア[18][19]。
Anvil - AMDの提供するVulkan用フレームワーク[20]。ライセンスはMIT License。
Falcor - NVIDIAの提供するVulkanおよびDirectX 12用のレンダリングフレームワーク[21]。
Vulkan Memory Allocator - AMDの提供するVulkan用メモリ管理ライブラリ[22][23]。ライセンスはMIT License。
ANGLE(英語版) - 各種3DグラフィックスAPIをバックエンドに利用できるOpenGL ES互換レイヤー。2021年3月現在、OpenGL ES 3.1対応のVulkanバックエンドが完成している。
言語バインディング
Vulkan-Hpp - Vulkan APIのC++バインディング[24]。Khronos Groupが提供している。ライセンスはApache License 2.0。元々NVIDIAで開発された[25]。
VulkanSharp - Vulkan APIの.NETバインディング[26]。Mono Projectが提供している。ライセンスはMIT License。
互換レイヤー
またMicrosoftはVulkan APIをDirect3D 12 API上で使うためのMesaのDznバックエンドの開発を推進している[28]。なおそれ以前も同種のものとしてVulkanOnD3D12[29]やRostkatzeが存在していた[30]もののどちらも開発停止中となっていた。 アップルのmacOS/iOS上では、Vulkanは2021年6月時点でネイティブサポートされていないが、Metal APIを利用してVulkanを実現するMoltenVK(旧称MetalVK)の開発が ⇒Brenwill Workshop によって進められている[31][32]。 2018年2月26日に、クロノスはValve、LunarG、Brenwill Workshopとの協業によるMoltenVKのオープンソース化を発表した[33][34][35]。これによりmacOS/iOSでもVulkanおよび開発ツールを無償で利用可能になった。SPIR-V/GLSLをMetal Shading Language (MSL) に変換するコマンドラインのツールMoltenVKShaderConverterも用意されている[36]。 GLFWはバージョン3.3にて、MoltenVKを経由することでmacOS上でVulkanをサポートするようになった[37]。 初期の仕様では、VulkanはOpenGL ES 3.1またはOpenGL 4.x以上をサポートする現行ハードウェアで動作することが述べられていた[38]。Vulkanをサポートするために新しいグラフィックスドライバーが要求されるようになると、OpenGL ES 3.1またはOpenGL 4.x以上をサポートするすべての既存デバイスが必ずしもVulkanドライバーを利用できるわけではなくなった。 主要なPC向けGPUベンダー3社はすべて、LinuxおよびWindowsシステム向けのドライバーの形で、無料のVulkan API実装を提供している[39]。Vulkan 1.2は比較的新しいハードウェアでサポートされており、Intel Skylake以降(Linuxの場合はBroadwell以降)、AMD GCN第2世代[40]以降、NVIDIA Kepler以降などで利用できる[41]。AMD、Arm、Imagination Technologies、Intel、NVIDIA、Qualcommは、2018年後半以降の実際のハードウェアをVulkan 1.1ドライバーにてサポートしている。Mesa 18.1は、RADVとANVILドライバーにてAMDとIntelのハードウェアをサポートしている。Mesa 3Dにおける実際のRADVおよびANVILの状態については、Mesamatrixを参照のこと[42]。 多くのAndroid搭載ハードウェアは、OpenGL ES仕様をサポートしているが、前述のようにVulkan対応状況はハードウェアとデバイスドライバー、そしてOSバージョンに左右される。Android 7.0 (Nougat) 以降でVulkan 1.0を、またAndroid 9.0 (Pie) 以降でVulkan 1.1をサポートする。 2021年6月時点で、AppleデバイスによるVulkan APIのネイティブサポートはない[43]。iOSおよびmacOS向けのサポートもAppleからは発表されていない。この問題に対する回避策として、前述のようにオープンソースライブラリのMoltenVK Qualcomm Snapdragonプラットフォーム向けのAdreno 5xx(2018)および6xxシリーズのGPU(Snapdragon 820など)は、Vulkan 1.0をAdreno GPU SDK経由でサポートしている[45][46]。SDKはAndroid Studio IDEをベースとしており、すべての機能を利用するにはAndroid NDKが必要である[47]。
MoltenVK
ベンダー横断のサポート
Intel、NVIDIA、AMD
Google Android
Apple
Qualcomm
脚注^ “VulkanR 1.3.261 - A Specification
^ ⇒OpenGL 3Dの次世代規格の策定作業がKhronos Groupの指揮下に始まる…ハードウェア重視、マルチスレッド、共通シェーディング言語など - TechCrunch
^ [GDC 2015]Khronos,新世代グラフィックスAPI「Vulkan」を正式発表。OpenGL時代のしがらみを捨てた,スリムでハイエンドなAPIに
^ SPIR - The first open standard intermediate language for parallel compute and graphics
^ [GDC 2015]Khronos,新世代グラフィックスAPI「Vulkan」でAMDの「Mantle」を採用