0
2

More than 3 years have passed since last update.

Android + Termux で Vulkan 開発を行うメモ

Last updated at Posted at 2020-01-10

背景

  • Android で Vulkan でレイトレーシングや機械学習したい.
  • Android で Vulkan(C/C++)開発を効率化したい
    • Gradle or Android Stuio で Java(Kotlin)経由で JNI で Vulkan とかめんどくさすぎる.
  • とりあえず compute 実行でよいので, Vulkan 開発と動作チェックする仕組みを作りたい

できました.

情報

きっかけは ilmari 先生のツイートでした.

調べると /system/lib64/libvulkan.so があります.

Android のドキュメントでも vulkan.so があるとありました. Vulkan は C API, .so 自体も C のみで実装(のはず)ですので, C++ ABI 周りの問題もあまりないはずですから, Termux でも直接呼べる(NDK の clang とバージョンや STL を合わせる必要がない)と想像できます.

実行

いつものように, Termux で vulkan_minimal_compute で動作を試してみます.

Vulkan のヘッダーファイル(vulkan_android.h)は, x11 関連あたりを pkg install すれば, Termux に入っていました.
(Termux では, /usr/data/data/com.termux/files/ にあります)

もしファイルがなければ, vulkan-headers(+ Vulkan-Loader) を使うのも手でしょう

冬到来! SwiftShader を使い人類史上最速で Vulkan プログラミングをはじめよう!
https://qiita.com/syoyo/items/ef5518f8c3638e50a6b9

あとは /system/lib64/libvulkan.so とリンクするようにすればよいです!

感想

しかしスマホの画面では, 外部物理キーボードつかってもめんどいです.
Snapdragon 855 あたり搭載した GPU 性能のよいタブレットがほしいところです.

TODO

  • Fluxbox + VNC だと quantized color モードになるようで, 画像を Display(ImageMagick)してもきちんと色が出ないので 32bit color になる設定を見つける.
  • 画面に出す
    • X11 + XCB Surface でいけるか?
    • Flutter で GUI を作り, ffi で Vulkan 関数を呼ぶ
  • Termux へ ssh ログインだとなんだか反応わるい. VNC も不安定なのでなんとかしたい.
  • Termux から PC Linux の X11 にはなぜか飛ばせない問題を解決する(ポート or username 問題?)
0
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
0
2