3次元グラフィクスのアプリケーション開発には、ほとんどの場合、標準化された専用のAPI(Application Programming Interface)が利用されています。例えばiOSやAndroidでいえばOpenGL ES、Windowsの場合はDirectXなどです。最近、Vulkanという新しい3D CG用のAPIとSDK(Software Development Kit)が公開されたので実際に試してみました。
Vulkan – Industry Forged – Khronos Group
Home | Vulkan | Cross platform 3D GraphicsVulkan is a next generation graphics and compute API that provides high-efficiency, cross-platform access to modern GPUs...
3種類のプラットフォームで試行
Vulkanを試すには、パソコンが必要です。NVIDIAやATIの高性能ビデオカードを搭載したデスクトップパソコンがあれば簡単に試せるのですが、そのようなパソコンが手元になかったので、Intelの標準的なビデオカードを内蔵したノートパソコンで試しました。しかし、これが大変でした。
試行その1. Windows10+Corei5 Intel HD Graphics 5000
Windows10をインストールしたIntel HD Graphics 5000搭載のノートパソコン(2014年製のMacBook Air)で試しました。この環境でVulkanを利用するには、Intelのドライバをインストールする必要があります。
ドライバのインストール
ドライバはIntelから提供されています。
-NEW- Intel® Vulkan BETA 15.40.20.4404 Graphics Driver for Windows® 7/8.1/10 [15.40]
Game DevelopmentAccess tools, tutorials libraries, and code samples from Intel to optimize your games.
Vulkan SDKのインストール
Vulkanのサンプルや開発用プログラムをインストールします。
LunarG® Vulkan™ SDK
Vulkan® SDK - What's in the SDK - Where to Download
その他の準備
Visual Studio 2013とCMakeのインストールが必要です。
サンプルが実行できず
サンプルをビルドして実行しようとすると、次のようなエラーが出ました。
ERROR: [loader] Code 0 : Registry lookup failed can't get ICD manifest files, do you have a Vulkan driver installed Cannot create Vulkan instance. C:\releasebuild\LoaderAndValidationLayers\demos\vulkaninfo.c:626: failed with VK_ERROR_INCOMPATIBLE_DRIVER
Intelのドライパのページを良く読むと次のような記述が・・・
This driver also adds new Beta support for the Vulkan 1.0 API for 6th Generation Intel Core and related processors.
つまり、Corei5は現状ではサポートされていないということです。という訳で、Windows10での動作確認はあきらめました。
試行その2. Ubuntu16.04+Corei5 Intel HD Graphics 3000
Ubuntu 16.04でVulkanがサポートされているようなので、Intel HD Graphics 3000を搭載したノートパソコン(2011年製のMacBook Pro)で試しました。
ドライバのインストール
ドライバはUbuntuの通常の方法でインストールできます。
sudo apt-add-repository ppa:canonical-x/vulkan sudo apt update sudo apt install vulkan-utils mesa-vulkan-drivers
参考:https://launchpad.net/~canonical-x/+archive/ubuntu/vulkan
Vulkan SDKのインストール
Windows版と同様に、次のサイトからダウンロードできます。
サンプルが実行できず
サンプルは次の手順でビルドして実行できます。
cd VulkanSDK/1.0.13.0/examples cmake -H. -Bbuild make -C build cd build ./cube
しかし、次のようなエラーが・・・
cube: /home/user/VulkanSDK/1.0.13.0/examples/cube.c:2567: demo_init_vk: Assertion `!err && gpu_count > 0' failed. Aborted (core dumped)
どうやらノートPCが古すぎて、GPUがサポート外だったようです。ということで、別のノートPC(2014年製のMacBook Air)を使うことにします。
捕捉
libxcb1-devとlibx11-devをapt-getでインストールしていないと、サンプルのビルド時に次のようなエラーがでます。
-- Could NOT find xcb (missing: XCB_INCLUDE_DIR XCB_LIBRARY) CMake Error at /usr/share/cmake-3.5/Modules/FindX11.cmake:439 (message): Could not find X11 Call Stack (most recent call first): CMakeLists.txt:22 (find_package)
試行その3. Ubuntu16.04+Corei5 Intel HD Graphics 5000
Ubuntu 16.04とCorei5 Intel HD Graphics 5000を搭載したノートパソコン(2014年製のMacBook Air)で試しました。ドライバとVulkan SDKのインストールは、試行その2と同じです。
サンプルが実行できた
cubeというサンプルを実行してみます。しかし、次のようなメッセージが・・・
./cube WARNING: Haswell Vulkan support is incomplete ../../../../../src/intel/vulkan/anv_device.c:414: FINISHME: Get correct values for VkPhysicalDeviceLimits vulkan: No DRI3 support Could not find a graphics and a present queue
DRI3を有効にする必要があるようなのですが、今回はintel_drv.soを削除することにしました(https://launchpad.net/~canonical-x/+archive/ubuntu/vulkan)。
mv /usr/lib/xorg/modules/drivers/intel_drv.so /usr/lib/xorg/modules/drivers/intel_drv.so.bak
再びサンプルを実行すると、画面にウィンドウが表示されました。
まとめ
結局、Vulkanを試すのに2日ほどかかってしまいました。Vulkanを試す以前に、Windows10やubuntuの準備に時間がかかりました。Android用はもっと簡単に試せるのかもしれません。