概要
Vulkan validation layersは、VulkanのAPI呼び出しを検証し、開発者がアプリケーションをデバッグし、正常に動作させるためのツールです。VulkanのAPIが適切に使用されていることを検証し、間違ったAPIの使い方をしているときに警告やエラーメッセージを提供してくれます。
UnityとVulkan validation layersの連携
UnityでビルドしたアプリケーションがVulkan validation layersの機能を利用できる件についてはUnity Forumsで言及があります。
UnityでVulkan validation layersを有効にする具体的な手順
Androidプラットフォームでの例は以下の通りです
- 以下のGithubのリポジトリからバイナリファイルを取得します。 github.com
- プロジェクトのAssets/Plugin/Android以下に1で取得したバイナリを展開します。 展開後は以下の様に表示されている筈です。
- Development Buildを有効にした状態でビルドを行い、端末へ転送します。
- ビルドしたアプリケーションの引数に"-force-vulkan-layers"を指定して実行します。
- Logcatに以下の表示がされていればVulkan validaton layersが有効になっていることを示しています。
Debug Unity [Vulkan init] layer enabled: VK_LAYER_KHRONOS_validation
Androidアプリケーションに引数を指定する
UnityPlayerActivityを拡張してコマンドライン引数を指定する
Unityのマニュアルに方法が記載されています。
一度設定すれば良いので何度も試す場合はこちらの方が楽かもしれません。
adb shellから指定する
adb shell am start -n "{Package Name}/com.unity3d.player.UnityPlayerActivity" -e unity -force-vulkan-layers
{Package Name}の部分にはPlayer Settings > Identification > Package Nameで表示されている文字列を指定します。 例えば、"XXX.YYY.ZZZ"であれば以下のようになります。
adb shell am start -n "XXX.YYY.ZZZ/com.unity3d.player.UnityPlayerActivity" -e unity -force-vulkan-layers
以上です。