Vulkan 1.2 グラフィックス標準が公開されました

グラフィックス標準を開発するクロノス コンソーシアムは、
опубликовал 仕様 Vulkan 1.2、GPU のグラフィックスおよびコンピューティング機能にアクセスするための API を定義します。 新しい仕様には、XNUMX 年間にわたって蓄積された修正が組み込まれており、 エクステンション。 新しいバージョンの Vulkan をサポートするドライバーはすでに提供されています。 リリース インテル社、 AMD、ARM、イマジネーション テクノロジーズ、 NVIDIA。 Mesa がドライバーに Vulkan 1.2 サポートを提供 RADV (AMD カード) および ANV (インテル)。 Vulkan 1.2 のサポートもデバッガーに実装されています レンダードキュメント 1.6, LunarG バルカン SDK および一連の例 Vulkan サンプル.

メイン イノベーション:

  • あなたに持って来られる 広く使用される準備が整うまでのシェーダ プログラミング言語の実装 HLSL、Microsoft によって DirectX 用に開発されました。 Vulkan での HLSL サポートにより、Vulkan および DirectX ベースのアプリケーションで同じ HLSL シェーダを使用できるようになり、HLSL から SPIR-V への変換も簡素化されます。 シェーダーをコンパイルするには、標準のコンパイラーを使用することをお勧めします。
    DXC、2017 年に Microsoft によってオープンされ、LLVM テクノロジーに基づいています。 Vulkan サポートは別個のバックエンドを通じて実装されており、HLSL を SPIR-V シェーダーの中間表現に変換できます。 実装はすべての組み込み機能をカバーするだけではありません
    HLSL には、数学的タイプ、制御フロー、関数、セット、リソース タイプ、名前空間、シェーダー モデル 6.2、構造およびメソッドが含まれますが、NVIDIA の VKRay などの Vulkan 固有の拡張機能の使用も可能になります。 Vulkan 上の HLSL モードでは、Destiny 2、Red Dead Redemption II、Assassin's Creed Odyssey、Tomb Raider などのゲームの作業を整理することができました。

    Vulkan 1.2 グラフィックス標準が公開されました

  • 仕様を更新しました SPIR-V1.5これは、すべてのプラットフォームに共通で、グラフィックスと並列コンピューティングの両方に使用できるシェーダーの中間表現を定義します。
    SPIR-V では、個別のシェーダ コンパイル フェーズを中間表現に分離することが含まれており、これにより、さまざまな高級言語のフロントエンドを作成できます。 さまざまな高レベルの実装に基づいて、単一の中間コードが個別に生成され、組み込みのシェーダー コンパイラーを使用せずに OpenGL、Vulkan、および OpenCL ドライバーで使用できます。

    Vulkan 1.2 グラフィックス標準が公開されました

  • コアの Vulkan API には、パフォーマンスを向上させ、レンダリング品質を向上させ、開発を簡素化する 23 の拡張機能が含まれています。 追加された拡張機能には次のものがあります。
    • 時系列セマフォ (タイムライン セマフォ)、ホスト キューとデバイス キューとの同期を統合します(個別の VkFence プリミティブと VkSemaphore プリミティブを使用せずに、64 つのプリミティブを使用してデバイスとホスト間の全方向同期を行うことができます)。 新しいセマフォは単調増加する XNUMX ビット値で表され、複数のスレッドにわたって追跡および更新できます。
      Vulkan 1.2 グラフィックス標準が公開されました

    • シェーダ内で精度が低下した数値型を使用できるようになりました。
    • HLSL 互換のメモリ レイアウト オプション。
    • アンバインド リソース (バインドレス)。システム メモリと GPU メモリの共有仮想空間を使用することにより、シェーダが利用できるリソースの数の制限が解除されます。
    • 正式なメモリモデル: 同時スレッドが共有データと同期操作にどのようにアクセスできるかを定義します。
    • 記述子のインデックス付け 複数のシェーダ間でレイアウト記述子を再利用するため。
    • バッファリンク。

    追加された拡張機能の完全なリスト:

  • によって追加 50 を超える新しい構造と 13 の機能。
  • 標準的なターゲット プラットフォーム向けに仕様の短縮バージョンが用意されており、すべての拡張機能がまだサポートされていないプラットフォームでの作業が簡素化され、Vulkan API の基本機能を選択的にアクティブ化することなく作業できるようになります。
  • 他のグラフィックス API との移植性を確保するために、プロジェクトの作業が続けられています。 たとえば、Vulkan は OpenGL 翻訳を可能にする拡張機能を提供しています (ツィンク)、OpenCL (clspv, clvk)、OpenGL ES (GLOVE、角度)、および DirectX (DXVK 拡張子, vkd3d) Vulkan API を介して、また逆に、Vulkan がネイティブ サポートなしでプラットフォーム上で動作できるようにします (gfx-rs и 遺灰 OpenGL と DirectX 上で動作するため、 MoltenVK および Metal の上で作業するための gfx-rs)。
    DirectX および HLSL との互換性を向上させる拡張機能を追加しました。
    VK_KHR_host_query_reset、VK_KHR_uniform_buffer_standard_layout、VK_EXT_scalar_block_layout、VK_KHR_ Separate_stencil_usage、VK_KHR_ Separate_ Depth_stencil_layouts、および SPIR-V は、特定の HLSL 機能を実装します。

将来の計画には、機械学習、レイ トレーシング、ビデオ エンコードとデコード、VRS (可変レート シェーディング) およびメッシュ シェーダーのサポートの拡張機能の開発が含まれます。

Vulkan API を思い出してください。 注目すべき ドライバーの大幅な簡素化、GPU コマンドの生成のアプリケーション側への移行、デバッグ レイヤーの接続機能、さまざまなプラットフォーム向けの API の統合、GPU 側での実行用のコードのプリコンパイル済み中間表現の使用などです。 高いパフォーマンスと予測可能性を確保するために、Vulkan はアプリケーションに GPU 動作の直接制御と GPU マルチスレッドのネイティブ サポートを提供します。これにより、ドライバーのオーバーヘッドが最小限に抑えられ、ドライバー側の機能がよりシンプルかつ予測可能になります。 たとえば、ドライバー側の OpenGL に実装されているメモリ管理やエラー処理などの操作は、Vulkan のアプリケーション レベルに移されます。

Vulkan は利用可能なすべてのプラットフォームにまたがり、デスクトップ、モバイル、Web にわたって単一の API を提供し、11 つの共通 A​​PI を複数の GPU およびアプリケーションにわたって使用できるようにします。 あらゆる GPU で動作するツールを構築する Vulkan の多層アーキテクチャにより、OEM は開発時にコード レビュー、デバッグ、プロファイリングに汎用ツールを使用できます。 シェーダを作成するために、LLVM に基づき、OpenCL と同じ基本テクノロジを使用する、新しい移植可能な中間表現 SPIR-V が提案されています。 デバイスと画面を管理するために、Vulkan は WSI (Window System Integration) インターフェイスを提供します。これは、OpenGL ES の EGL とほぼ同じタスクを解決します。 WSI サポートは、Wayland ですぐに使用できます。Vulkan を使用するすべてのアプリケーションは、変更されていない Wayland サーバーの環境で実行できます。 WSI を介して動作する機能は、Android、X3 (DRIXNUMX 搭載)、Windows、Tizen、macOS、iOS にも提供されています。

出所: オープンネット.ru

コメントを追加します