低スペックのPCでVulkanを試すのは大変だった

3次元グラフィクスのアプリケーション開発には、ほとんどの場合、標準化された専用のAPI(Application Programming Interface)が利用されています。例えばiOSやAndroidでいえばOpenGL ES、Windowsの場合はDirectXなどです。最近、Vulkanという新しい3D CG用のAPIとSDK(Software Development Kit)が公開されたので実際に試してみました。

Vulkan - Industry Forged - Khronos Group https://www.khronos.org/vulkan/

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] https://software.intel.com/en-us/blogs/2016/03/14/new-intel-vulkan-beta-1540204404-graphics-driver-for-windows-78110-1540

Vulkan SDKのインストール

Vulkanのサンプルや開発用プログラムをインストールします。

LunarG® Vulkan™ SDK https://lunarg.com/vulkan-sdk/

その他の準備

Visual Studio 2013とCMakeのインストールが必要です。

サンプルが実行できず

サンプルをビルドして実行しようとすると、次のようなエラーが出ました。

Windows10 vulkaninfo

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版と同様に、次のサイトからダウンロードできます。 https://vulkan.lunarg.com/signin

サンプルが実行できず

サンプルは次の手順でビルドして実行できます。

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を使うことにします。

捕捉

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)</pre>
<h3>試行その3. Ubuntu16.04+Corei5 Intel HD Graphics 5000</h3>
Ubuntu 16.04とCorei5 Intel HD Graphics 5000を搭載したノートパソコン(2014年製のMacBook Air)で試しました。ドライバとVulkan SDKのインストールは、試行その2と同じです。
<h4>サンプルが実行できた</h4>
cubeというサンプルを実行してみます。しかし、次のようなメッセージが・・・
<pre class="lang:default decode:true " title="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

再びサンプルを実行すると、画面にウィンドウが表示されました。 cubeサンプル

まとめ

結局、Vulkanを試すのに2日ほどかかってしまいました。Vulkanを試す以前に、Windows10やubuntuの準備に時間がかかりました。Android用はもっと簡単に試せるのかもしれません。


Copyright© 石丸技術士事務所 Round Stone , 2019 All Rights Reserved.