2016-10-10 (月)
*[3dcg] Vulkan試す
触ろうと思いつつ数ヶ月たってしまった気がするけど,Vulkan.
Intel HD Graphics 5500がVulkan 1.0をサポートしてるので,X250で動くかと思ったのだけど,Intelが公開してるWindows用ドライバがSkylake以降じゃないと駄目だった.Windowsは駄目だけど最近のLinuxにはドライバ入ってるみたい.
とりあえずAndroidで試す.
https://developer.android.com/ndk/guides/graphics/getting-started.html
サンプル動かすだけだけど,いつもどおりGradleに苦戦.Android Studio 2.2でcmakeまともに使える様になったらしいので,NDK周りは今後は楽になるのかなあ.いくつかビルドできてないサンプルあるけど放置.
サンプル見てると,GLSLがコード中に文字列で書かれてて,あれ?と思ったけど,util_init.cpp で実行時にglslangでコンパイルした結果をVkShaderModuleCreateInfo.pCodeに突っ込んでるだけだった.せっかくSPIR-Vが使えるので,実際に使うときはコンパイル済みのファイルを使うのが良さげ.utilsに色々入ってるので,サンプル本体だけじゃなくて,こっちも読まないと何やってるのか分からない.
メモ:
試してないけど,シェーディング言語はHLSLも使えるっぽい.というか,SPIR-Vにコンパイルさえできれば良いのか.
SPIR-VはLLVMのbytecodeとは無関係の独自のフォーマットになったみたい.
VulkanのAPIで読み込んだシェーダーをOpenGLで使ったり,OpenGLで作ったVBOをvkMapMemoryしたりしたいのだけど,可能なのかどうかも良くわからない.