Help us understand the problem. What is going on with this article?

初めてのVulkanプログラミング step2 layerの導入

More than 1 year has passed since last update.

目次に戻る

ソースコードは以下の場所に置いておきます。各自のバージョンに合わせたプロパティ設定をしてから自由にご利用ください。
github: VulknAppAdocal2018

vulaknは以下の要素で構成されている階層型アーキテクチャーです。
・バルカンアプリケーション
・バルカンローダ
・バルカンレイヤー
・クライアントデバイス(ICD)

ローダー

アプリケーションは、ローダの端にあり、ローダーと直接接続されています。アプリケーションの反対側には、vulkan対応ハードウェアを制御するICDがあります。ローダーは、特別な機能を提供する多数のオプションlayerを挿入することができます。ローダは、さまざまなレイヤーを操作したり複数のGPUとそのドライバーを操作します。vulkanの関数はすべて、ローダー、レイヤー、ICDなど様々なモジュールから呼び出します。vulkanオブジェクトモデルを使用すると、ローダは、ICDが呼び出される前にレイヤーがvulkan関数を処理することができます。

layer

レイヤーは、vulkanシステムを拡張するオプションコンポーネントです。
アプリケーションからハードウェアにいたるすべてにおいて、vulkanの機能を評価などを行う拡張機能を設定することができます。レイヤーは、CreateInstaneに実装されます。またこれらの複数のレイヤーを連鎖させて、1つの大きなレイヤーのようにカスケードすることができます。

LunarG Vukan SDK には、以下のレイヤーが含まれています。

レイヤー名 機能
VK_LAYER_LUNARG_api_dump apiの呼び出しと、そのパラメータと値を表示
VK_LAYER_LUNARG_monitor アプリケーションのタイトルバー(一番上の帯)にfpsを表示
VK_LAYER_LUNARG_screenshot 指定のフレームワークを画像に出力する
VK_LAYER_GOOGLE_threading スレッドAPIの妥当性を評価する

このほかにも多くのlayerが存在します。

このレイヤー機能を利用するには、環境設定が必要です。
しかし現在皆さんのPCには、きっとVK_LAYER_Nvidiaまたは、VK_LAYER_Intelしか入っていないと思われます.

Vulkan Loaderは、次のレジストリキーを検索してレイヤーを見つけます。

HKEY_LOCAL_MACHINE/SOFTWARE/khronos/ExplicitLayers
HKEY_LOCAL_MACHINE/SOFTWARE/Khronos/Vulkan/ImplicitLayers

Vulkan Loderは値の名前で指定されたjsonテキストファイルを開き、レイヤー共有ライブラリーを検索します

windowsでレイヤーをアクティブにする

環境変数を新規作成しVk_instance_layerにLayer名を記入し、また新しくvk_layer_pathを設定します。

コメント 2018-12-25 124719.jpg

コメント 2018-12-25 124822.jpg

連絡先

tweeter: tositada_nakada
mail: nakadasanda@outlook.com

寄付

paypal: tositada_nakada
Amazon: 欲しいものリスト

tositada_nakada
石川で大学生やっています。 使える言語:vulkan/physix/c++/日本語
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away