Skip to content

Latest commit

 

History

History
53 lines (28 loc) · 5.23 KB

layers.adoc

File metadata and controls

53 lines (28 loc) · 5.23 KB

レイヤ

レイヤは、Vulkan システムを補強するオプション要素です。レイヤは、アプリケーションからハードウェアに至るまで、既存の Vulkan 関数をインターセプトし、評価し、修正することができます。レイヤのプロパティは、アプリケーションから vkEnumerateInstanceLayerProperties でクエリできます。

レイヤの使い方

レイヤは共有ライブラリとしてパッケージ化されており、ローダによって動的に読み込まれ、ローダとアプリケーションの間に挿入されます。レイヤを使用するために必要なのは、バイナリファイルの場所と、どのレイヤを有効にするかという2点です。使用するレイヤには、アプリケーションが明示的に使用するものと、ローダに指示して暗黙的に使用するものがあります。暗黙的なレイヤと明示的なレイヤの詳細については、ローダとレイヤのインターフェイスを参照してください。

Vulkan SDK には、各プラットフォームでのレイヤの検出と設定方法に特化したレイヤ設定ドキュメントが含まれています。

Vulkan Configurator ツール

Windows、Linux、macOS の開発者は、Vulkan Configurator(vkconfig)を使用して、GUI から明示的なレイヤの有効化、暗黙的なレイヤの無効化、およびレイヤ設定の変更を行うことができます。Vulkan Configurator の使用に関する詳細は、Vulkan SDK の Vulkan Configurator ドキュメントを参照してください。

デバイスレイヤの非推奨化

かつてはインスタンスレイヤとデバイスレイヤの両方がありましたが、デバイスレイヤは Vulkan の初期段階で非推奨となっているため、避けてください。

レイヤの作成

ローダとレイヤが相互に通信することに同意する方法であるローダからレイヤへのインターフェイスに従う限り、誰でもレイヤを作成することができます。

LunarG では、新しいレイヤの開発を支援するために、Layer Factoryと呼ばれるレイヤ作成のためのフレームワークを提供しています(プレゼン動画)。Layer Factory は、ローダ・レイヤのインターフェイス、レイヤの定型文、セットアップや初期化、レイヤ開発の複雑さなどの大部分を隠します。アプリケーションの開発時には、アプリケーションのデバッグを支援するレイヤを簡単に作成できる機能が役立ちます。詳しくは、Vulkan Layer Factory のドキュメントをご覧ください。

プラットフォームのバリエーション

暗黙的にレイヤを読み込む方法は、ローダやプラットフォームによって異なります。

Android

Android P(Android 9 / APIレベル28)では、デバイスがデバッグ可能な状態にあり、getprop ro.debuggable1を返した場合、ローダは /data/local/debug/vulkan を検索します。

Android P (Android 9 / API level 28)からは、アプリケーションがデバッグモードでビルドされている場合、ADB を使って暗黙のレイヤをプッシュできるようになりました。

暗黙的なレイヤを使用するには、上記のオプション以外に方法はありません。

Linux

Vulkan SDK では、Linux で暗黙のレイヤを使用する方法が説明されています。

MacOS

Vulkan SDK では、MacOS で暗黙のレイヤを使用する方法が説明されています。

Windows

Vulkan SDK では、Windows で暗黙のレイヤを使用する方法が説明されています。