低スペックの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

Vulkan - Industry Forged
Vulkan is a new generation graphics and compute API that provides high-efficiency, cross-platform access to modern GPUs used in a wide variety of devices from P...

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]

Vulkan BETA 15.40.20.4404 Graphics Driver for Windows® 7/8.1/10...
  That post is out of date. Vulkan support is out of Beta and in every driver release since February, 2017  Here is the post

Vulkan SDKのインストール

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

LunarG® Vulkan™ SDK

Vulkan® SDK - What's in the SDK - Where to Download

その他の準備

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

サンプルが実行できず

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

Windows10 vulkaninfo

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

https://launchpad.net/~canonical-x/+archive/ubuntu/vulkan

Vulkan SDKのインストール

Windows版と同様に、次のサイトからダウンロードできます。

LunarXchange

サンプルが実行できず

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

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)。

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サンプル

cubeサンプル

まとめ

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

タイトルとURLをコピーしました