Vulkan_(API)
[Wikipedia|▼Menu]
開発環境.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%;font-size:90%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}html.client-js body.skin-minerva .mw-parser-output .mbox-text-span{margin-left:23px!important}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}

この節の加筆が望まれています。

この節に雑多な内容が羅列されています。事項を箇条書きで列挙しただけの節は、本文として組み入れるか、または整理・除去する必要があります。(2021年3月)

ウィキペディアはオンライン百科事典であって、情報を無差別に収集する場ではありません。改善やノートページでの議論にご協力ください。(2021年3月)

Vulkanの公式ソフトウェア開発キット (SDK) として、Valve社の協力のもとLunarG(英語版)社がLunarG Vulkan SDKをリリースしている。同SDKはWindowsLinux、および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]
補助ライブラリ

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。

互換レイヤー

Vulkan APIの制定元であるKhronos GroupはVulkan APIをAppleのMetal API上で使うための互換レイヤー「MoltenVK(英語版)」を提供している[27]。ライセンスはApache License 2.0。

またMicrosoftはVulkan APIをDirect3D 12 API上で使うためのMesaのDznバックエンドの開発を推進している[28]。なおそれ以前も同種のものとしてVulkanOnD3D12[29]やRostkatzeが存在していた[30]もののどちらも開発停止中となっていた。
MoltenVK

アップルの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ドライバーを利用できるわけではなくなった。
Intel、NVIDIA、AMD

主要な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]
Google Android

多くのAndroid搭載ハードウェアは、OpenGL ES仕様をサポートしているが、前述のようにVulkan対応状況はハードウェアとデバイスドライバー、そしてOSバージョンに左右される。Android 7.0 (Nougat) 以降でVulkan 1.0を、またAndroid 9.0 (Pie) 以降でVulkan 1.1をサポートする。
Apple

2021年6月時点で、AppleデバイスによるVulkan APIのネイティブサポートはない[43]。iOSおよびmacOS向けのサポートもAppleからは発表されていない。この問題に対する回避策として、前述のようにオープンソースライブラリのMoltenVK(英語版)を使用する方法がある。MoltenVKはMetal API上に構築されたVulkan実装を提供するものであり、iOSとmacOSデバイス上で動作する。ただし、この方法にはいくつかの制限がある[44]
Qualcomm

Qualcomm Snapdragonプラットフォーム向けのAdreno 5xx(2018)および6xxシリーズのGPU(Snapdragon 820など)は、Vulkan 1.0をAdreno GPU SDK経由でサポートしている[45][46]。SDKはAndroid Studio IDEをベースとしており、すべての機能を利用するにはAndroid NDKが必要である[47]
脚注^ “VulkanR 1.3.261 - A Specification”. クロノス・グループ (2023年7月28日). 2023年8月4日閲覧。
^OpenGL 3Dの次世代規格の策定作業がKhronos Groupの指揮下に始まる…ハードウェア重視、マルチスレッド、共通シェーディング言語など - TechCrunch
^ [GDC 2015]Khronos,新世代グラフィックスAPI「Vulkan」を正式発表。OpenGL時代のしがらみを捨てた,スリムでハイエンドなAPIに - 4Gamer.net
^ SPIR - The first open standard intermediate language for parallel compute and graphics
^ [GDC 2015]Khronos,新世代グラフィックスAPI「Vulkan」でAMDの「Mantle」を採用 - 4Gamer.net


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:36 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef