Vulkan

Android は、高パフォーマンスの 3D グラフィックを実現する、低オーバーヘッドのクロス プラットフォーム API である Vulkan をサポートしています。OpenGL ES(GLES)と同様に、Vulkan はアプリで高品質のリアルタイム グラフィックを作成するためのツールを提供します。Vulkan を使用するメリットとしては、CPU オーバーヘッドを削減できることや SPIR-V バイナリ中間言語をサポートしていることなどが挙げられます。

GPU 独立系ハードウェア ベンダー(IHV)などのシステム オン チップ(SoC)ベンダーは、Android 用の Vulkan ドライバを作成できます。OEM は特定のデバイス用にこれらのドライバを統合する必要があります。Vulkan ドライバとシステムの相互作用、GPU 固有のツールのインストール方法、Android 固有の要件の詳細については、Vulkan の実装をご覧ください。

アプリのデベロッパーは Vulkan を使用して GPU 上でコマンドを実行するアプリを作成し、オーバーヘッドを大幅に削減できます。また、Vulkan は EGL や GLES と比べて、今日のグラフィック ハードウェアに存在する機能へのより直接的なマッピングを提供するため、ドライバのバグを最小限に抑えてデベロッパーのテスト時間を短縮します。

Vulkan に関する基本情報については、Vulkan の概要またはリソースのリストをご覧ください。

Vulkan コンポーネント

Vulkan のサポートには、次のコンポーネントが含まれます。

Vulkan コンポーネント

図 1. Vulkan コンポーネント

コンポーネント名 プロバイダ 説明
Vulkan 検証レイヤ Android(NDK 内) Vulkan アプリの開発中に、アプリの Vulkan API の使用におけるエラーを見つけるために使用するライブラリ。API 使用エラーが見つかったら、これらのライブラリを削除します。
Vulkan Runtime Android ネイティブの Vulkan API を提供するネイティブ ライブラリ、libvulkan.so

Vulkan Runtime の機能の大部分は、GPU ベンダーが提供するドライバによって実装されます。Vulkan Runtime はドライバをラップして、デバッグや他のデベロッパー ツール用の API インターセプト機能を提供し、ドライバとプラットフォームの依存関係の間のインタラクションを管理します。
Vulkan Driver SoC Vulkan API を、ハードウェア固有の GPU コマンドと、カーネル グラフィックのドライバとのインタラクションにマッピングします。

変更されたコンポーネント

BufferQueue と Gralloc が Vulkan に対応するようになりました。

  • BufferQueue。BufferQueue にある追加の列挙値およびメソッドと、ANativeWindow インターフェースを使用することで、Vulkan Runtime は ANativeWindow を介して BufferQueue に接続できます。
  • Gralloc。任意のインターフェースで、Gralloc がバッファを割り当てることなく特定のプロデューサーやコンシューマーの組み合わせに所定のフォーマットを使用できるかどうかを特定できます。

これらのコンポーネントの詳細については、BufferQueue と gralloc をご覧ください。ANativeWindow の詳細については、EGLSurface と OpenGL ES をご覧ください。

リソース

Vulkan の詳細については、次のリソースをご利用ください。

  • platform/frameworks/native/vulkan にある Vulkan ローダーlibvulkan.so)。Android の Vulkan ローダーだけでなく、プラットフォーム デベロッパーに役立つ Vulkan 関連のツールも含まれています。
  • Vulkan の実装。Android 用 Vulkan ドライバを作成する GPU IHV と、特定のデバイスに対し Vulkan ドライバを統合する OEM を対象としています。Vulkan ドライバとシステムの相互作用、GPU 固有のツールのインストール方法、Android 固有の実装要件について説明します。
  • Vulkan Graphics API ガイド。Android アプリでの Vulkan の使用開始、Android の Vulkan の設計ガイドライン プラットフォーム、Vulkan のシェーダー コンパイラの使用、Vulkan を使用したアプリの安定性確保に役立つ検証レイヤの使用に関する情報が記載されています。
  • Vulkan ニュース。イベント、パッチ、チュートリアル、Vulkan 関連のニュース記事などを網羅しています。