多くの人にはあまり馴染みが無いVulkanが、この度バージョン1.1にアップデートし、Raspberry Pi 4に準拠したと公式ブログでニュースがありました。
Raspberry PiだとグラフィックスAPIとして、OpenGL/OpenGL ESが搭載されています。
公式ブログのニュースは、OpenGL/OpenGL ESに変わる(残して連携する)VulkanというAPIがRaspberry Pi 4の64bit版で動くようになるという発表でした。
Vulkanとは
どうもAndroid端末ではこのVulkanが正式にサポートされていて、高度な3Dグラフィックスを動かすAPIのようです。
有名な3D制作プラットフォームのUnreal Engine 4が動作するのでは?と期待されています。
しかし、Raspberry Piで3Dゲーム制作が…というのは早計です。
メモリーも16GBは欲しいでしょうし、そもそもCPUのコア数が8コア程度無いと快適に動作しないハズです。あくまでもGPUのAPIが対応したレベルでしかありません。
今後、Raspberry Pi にもインストールできるV3DV Mesaドライバーにマージされて提供されるため、もうそろそろ(恐らく次OSバージョン)対応されるよ、と記事でアナウンスされています。
いくつかキャプチャ画像が載っていて、サンプルが動作するとあったので直ぐに試してみましたが、エラーでBuildできない。
ん? これ、64bit版だけに対応か?
Raspberry PI Ltd 2021-10-20 Vulkan_1_1
Raspberry Pi 4 Model B
引用元:Vulkan Conformant Products
CTS Version: 1.2.7.1
Driver Version: Mesa 21.3.0 (v3dv)
CTS Version: 1.2.7.1
Broadcom BCM2711, quad-core Cortex-A72 (ARM v8)
OS: Raspbian Linux 5.10.63-v8 (aarch64)
API version: 1.1.190
GPU: VideoCore VI HW (V3D 4.2)
デモを試すだけなのに、ビルドのエラーを潰すのにかなり時間がかかってしまいました。もう1回やらないと正式なルートが分からない。
とりあえずデモは上手く動作しました。
デモを試してみた
早速、まだプレリリースの64bit版Raspberry Pi OSを書き込んで、Pi 400で試してみます。もちろんRaspberry Pi 4でOKです。
海外ではRaspberry Pi + Ubuntu の例もありました。私はRaspberry Pi OSです。

MesaのドライバーをBuildして、Vulkanのサンプルデモを指定して動作させます。v1.0当時のサイトを参考に、最終的に海外のサイトが的確なコマンドでしたね。(記事下にまとめてURLあります)
mesaをビルドした時のパスだけ64bit版に直しました。(× broadcom_icd.armv7l.json)
export VK_ICD_FILENAMES=/home/pi/local-install/share/vulkan/icd.d/broadcom_icd.aarch64.json
ビルドはできたけど…動かない?
もしも以下のエラーなら、SSH接続経由で実行していませんか?
Could not find a compatible Vulkan ICD!
実機でコマンドしてください。(./gears)もちろん、モニターが省電力で消えていてもダメです。
こういうことがあったので、Pi 400で試したというわけです。モニターにHDMIと電源だけでOKですから軽便です。はい。
デモ動作例
たくさんあるデモは全部をまだ試していません。いくつかはRaspberry Piではスペックが足りないのか全く起動しないデモもあります。
キャプチャを撮ったのをご紹介しておきます。グリグリ動かすの多くて面白い!







こんなにたくさんのデモが用意されていました。






またゆっくりと試してみたいと思います。
今後に期待される
思いのほか、安定してグリグリ動きます。マウスでドラッグするか、ウィンドウにあるオプションのチェックを入切して変化を楽しめます。かなりのデモがそのまま動作しましたよ。
mesaドライバとVulkanデモのビルド&makeが手こずります。
これがスペック範囲内で動作するRaspberry Piって、どのくらいの性能と価格で、いつになるのか分かりませんが、そうなると普通のパソコンじゃん。
夢のあるVulkanのデモでした。