2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

冬到来! SwiftShader を使い人類史上最速で Vulkan プログラミングをはじめよう!

Last updated at Posted at 2019-12-04

冬到来!

冬はこたつでぬくぬくと Vulkan プログラミング始めたいですね.

やりましょう!

SwiftShader 使えば Vulkan 対応 GPU がなくても CPU でうごくよ.

動作環境

  • Ubuntu 18.04
  • Windows, macOS でも動くはず(未検証)
  • Raspberry Pi 4(aarch64) などでも動くはず

必要なライブラリ

  • C++11 compiler
  • git, cmake
  • SwiftShader Vulkan(Vulkan の CPU 実装. シェーダ実行部分(LLVM)も含まれているはず)
  • Vulkan-Loader(ベンダーごとの Vulkan ドライバのロードや管理を楽(?)にするライブラリ)

SwiftShader について

SwiftShader の Software Vulkan 実装で自前 Vulkan アプリを作る準備(Linux)
https://qiita.com/syoyo/items/17a74b6809ebf1577ce7

Vulkan-Loader について

Vulkan のドライバロードなどを楽(?)にするものです. 必須ではないのですが, 基本的に使ったほうが便利なので使いましょう.

とりあえず動かすサンプルコード

Vulkan minimal compute を Vulkan-Loader 対応し, swiftshader や vulkan ヘッダーファイルも git sbumodule で一式取ってくる self-contained なのを作りました.
(LunarG Vulkan SDK のインストールは不要です)

swiftshader branch です.

$ git submodule update --init --recursive
$ ./scripts/bootstrap-linux.sh
$ cd build
$ make

SwiftShader(+ シェーダコンパイラ)も一緒にビルドするので, 時間かかります.

バイナリができたら, Linuxlibvk_swiftshader.so(Vulkan 実装), vk_swiftshader_icd.json(Vulkan-Loader 用設定ファイル)もできているはずです.

VK_ICD_FILENAMES 環境変数で, vk_swiftshader_icd.json のパスを指定します.

export VK_ICD_FILENAMES=vk_swiftshader.json

としてからアプリを実行します.

Windows だと set VK_ICD_FILENAMES=... かな?

実行するとマンデルブロー描画されるはずだよ!

Vulkan プログラミングの情報

発展

NVIDIA や AMD の GPU 積んで Vulkan ドライバが入っていれば, コード(バイナリ)はそのままで GPU で動くはずだよ! 試してみよう!

Vulkan 対応 GPU 持っていない優秀な小学生さまにおかれましては, GPU をクリスマスプレゼントとしておねだりしようね
(NVIDIA Jetson という手もあるよ! > https://developer.nvidia.com/embedded/vulkan)
(Switch で Vulkan プログラミングという奥の手があるかもだけど, 18 才以上じゃないと開発者申請できなくてぴえん 😢 https://developer.nintendo.com/ja/home )

TODO

  • シェーダのコンパイルについて記載する
  • 画面を出すサンプルを作る
  • 優秀な若人さまが, SwiftShader を使い人類史上最速で優秀な Vukan 若人さまへ昇華なされるスキームを確立する旅に出たい
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?