MoltenVK
MoltenVKとは、macOSおよびiOS向けのVulkan実装である。 Metalの上に実装されている。
「macOS 10.14 Mojave」および「iOS 12」において「OpenGL」「OpenGL ES」「OpenCL」が非推奨となったことをうけ開発が始まった。今のところジオメトリシェーダーとコンピュートシェーダーは使えないようだ。
VTKの開発会社KITWAREによるとMetal対応ではなくMoltenVK対応を検討しているという。またAutodeskは一部製品のmacOS版を廃止するとしている。
目次
速度
クロノスグループによるとMoltenVKで再実装すると旧来のOpenGLよりも1.5倍も高い性能が得られるとしている。当然ながらMetalで書いた方が高速に動作するが、MoltenVKを噛ましてもオーバーヘッドは10%程度だという。
使ってみる
cmakeとpython3を入れる。
brew install cmake brew install python3
ninjaを入れるとビルドが速くなる。入れなくてもいい。
brew install ninja
MoltenVKのソースコードを取得する。
git clone https://github.com/KhronosGroup/MoltenVK.git
MoltenVKが利用している外部ライブラリを取得する。MoltenVKのソースコードの中に全自動で取得してビルドまで終わらせてくれるスクリプトが用意されているので叩くだけ。この中にはVulkan SDKなど(SPIR-Vのコンパイラなど)も含まれている。
cd MoltenVK ./fetchDependencies
MoltenVKをビルドする。
xcodebuild -quiet -project MoltenVKPackaging.xcodeproj -scheme "MoltenVK Package" build