4

現在、Visual Studio で Vulkan のデバッグ レイヤー dll を使用するように強制しようとしていますが、ライブラリを読み込めません。私の手順は次のとおりです。

  1. クローンhttps://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/blob/master/BUILD.md
  2. Visual Studio 2015 用のビルド (リリースおよびデバッグ)
  3. 私のVulkanアプリケーションでは、これを環境変数に入れました(x64の場合-デバッグ)(プロジェクト設定->デバッグ):VK_LAYER_PATH=F:\Projects\Vulkan-LoaderAndValidationLayers\build\layers\Debug

アプリケーションを起動すると、インスタンスを作成しようとするまで実行され、インスタンスが返さVK_ERROR_LAYER_NOT_PRESENTれ、Visual Studio の出力ウィンドウで dll がまったく読み込まれていないことがわかります。上記のパスにVulkanバイナリへの「通常の」パスを入れるだけで、再び正常に動作します。.json ファイルも存在することを確認しました。この問題は、LoaderAndValidationLayers フォルダーからリリース DLL を使用しようとした場合にも発生します。

私は何を間違っていますか?これを機能させる方法を知っている人はいますか?

編集:それが問題のようであることがわかりましたVK_LAYER_LUNARG_threading。使用VK_LAYER_LUNARG_standard_validationしても何もロードされません。含まれているすべてのレイヤーを手動で指定するだけで (ここで説明: https://vulkan.lunarg.com/app/docs/v1.0.3.1/layers )、VK_LAYER_LUNARG_threadingレイヤーなしで正常に動作します。なぜこれが考えられるのでしょうか?

4

2 に答える 2

1

OK、私は問題を見つけたと思います。しかし、なぜこれが起こるのか、私はまだ100%確信していません. 2 つの VkLayer_threading.json ファイルを比較したところ、名前が異なることに気付きました (バージョン 1.0.3 から 1.0.5 への名前の変更が疑われます)。

  • 1.0.3 ("名前": "VK_LAYER_LUNARG_threading") -> 1.0.5 ("名前": "VK_LAYER_GOOGLE_threading")

しかし、Vulkan-LoaderAndValidationLayers リポジトリ ( https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers ) からデバッグ vulkan-1.lib ローダー ライブラリも使用していますが、適切なライブラリを読み込めません。

現時点での私の最も強い推測は、SDK for Windows はまだバージョン 1.0.3.1 であるため、メタレイヤー (VK_LAYER_LUNARG_threading) 内でも古い名前を使用しているため、新しい名前のレイヤーが見つからないということです。とりあえず .json ファイルを編集したところ、再び機能しました。

編集:推測を確認しました。最近リリースされた Windows 用の 1.0.5 SDK アップデートをインストールした後、上記の名前変更を元に戻して、再び機能させる必要がありました。そのため、利用可能な SDK バージョンにまだ反映されていない変更が含まれている可能性があるため、LoaderAndValidationLayers リポジトリの最新バージョンを使用する場合は注意してください。

于 2016-03-11T13:56:06.503 に答える