年末年始のタイミングで Vulkan を少し勉強してみました。個人的な印象では DirectX12 よりも難しい感触がありました。
しかしながら、発表からある程度の時間が経っており、情報も比較的多くあったため三角形を1枚出せるところまで到達できました。
既に先陣を切ってくれた人が情報を公開してくれていたのが大変参考になりました。
Vulkan 感想
情報が多くあったので助かったのは事実ですが、その一方で警告なしに動くようなものはほとんど無かったのでその点では苦労しました。
ここでの警告とは、Vulkan の Validation Layer を有効化して、VkDebugReportFlags で Error と Warning に関して表示されるものと判定しています。
また Validation Layer は SDK の更新と共に更新されているようなので、まだまだ開発途上の用ですね。1.0.33 あたりで警告をつぶした後、1.0.37 に更新したら警告が出てしまい、再び修正を試みる、なんてことをしていました。
これから Vulkan のコードを公開する人は Validation Layer によるチェックも検討してみてほしいです。
Vulkan on WPF
C++のアプリケーションで Vulkan を用いて三角形が出せたところで、WPF アプリケーションの中に Vulkan 描画をいれてみました。
これは C# + C++/CLI でやっています。 ウィンドウのリサイズ関連がとても手間だったように思います。
現在は、C++/CLI と c# なんて面倒なことをせずに使えるように、オール C# による Vulkan のコードを実装中です。
Vulkan 描画用の Control として NuGet に登録できるように 2017年頑張っていきたいと思います。