Skip to content

Latest commit

 

History

History
62 lines (38 loc) · 4.44 KB

querying_extensions_features.adoc

File metadata and controls

62 lines (38 loc) · 4.44 KB

プロパティ、拡張機能、機能、制限、フォーマットのクエリ

Vulkan の最大の特徴は、マルチプラットフォーム、マルチデバイスでの開発が可能なことです。これを実現するために、アプリケーションは各物理デバイスの情報をクエリし、その情報に基づいて判断する役割を担っています。

物理デバイスからクエリ可能な項目

  • プロパティ

  • 機能

  • 拡張機能

  • 制限

  • フォーマット

プロパティ

その他にも Vulkan にはプロパティと記載されるものが多数存在します。「プロパティ」という言葉は、クエリ可能な読み取り専用のデータの総称です。

拡張機能

Note

詳しくは拡張機能の有効化の章をご覧ください。

利用可能なすべての拡張機能が記載されたレジストリがあります。

Vulkan には、現在は存在しない新機能が望まれることが多々あります。拡張機能は新しい機能を追加することができます。拡張機能は新しい Vulkan 関数、列挙型、構造体、または機能ビットを定義することができます。これらの拡張項目はすべて Vulkan Headers にデフォルトで含まれていますが、拡張機能が有効になっていない場合、拡張された Vulkan を使用することは未定義の動作となります。

機能

Note

詳しくは機能の有効化の章をご覧ください。

機能は、一部の実装でサポートされていない機能を表します。機能は、VkDevice の作成時にクエリし、有効にすることができます。すべての機能のリストに加えて、より新しい Vulkan バージョンや拡張機能の使用により、必須となる機能があります。

一般的な手法としては、拡張機能が pNext に渡すことのできる新しい構造体を公開することで、クエリ可能な機能を増やすことができます。

制限

制限とは、アプリケーションが注意しなければならない実装依存の最小値、最大値、その他のデバイス特性のことです。すべての制限のリストに加えて、いくつかの制限には Vulkan の実装で保証される最小/最大の必要な値があります。

フォーマット

Vulkan は多くの VkFormat を提供しています。それらは、さまざまな VkFormatFeatureFlagBits ビットマスクを保持する複数の VkFormatFlags を持ち、クエリすることができます。

詳しくは フォーマットの章 をご覧ください。

ツール

すべての情報を素早く、人間が読める形式で得るために役立つツールがいくつかあります。

vulkaninfo は、Windows、Linux、および macOS 用のコマンドラインユーティリティで、GPU について上記の利用可能な項目をすべて確認することができます。Vulkan SDK の Vulkaninfo ドキュメントを参照してください。

Sascha Willems 氏が開発した Vulkan Hardware Capability Viewer は、Vulkan をサポートするデバイスのすべての詳細を表示する Android アプリです。