RADV Vulkan ドライバーは、ACO シェーダー コンパイル バックエンドを使用するように切り替えられました。

Mesa 20.2 リリースの形成に使用されるコードベースでは、 実装された AMD チップ用の Vulkan ドライバーである RADV を、シェーダーのコンパイルにデフォルトのバックエンドを使用するように切り替えます。ACOこれは、LLVM シェーダー コンパイラーの代替として Valve によって開発されています。 この変更により、ゲームのパフォーマンスが向上し、起動時間が短縮されます。 古いバックエンドに戻すために、環境変数「RADV_DEBUG=llvm」が提供されます。

ACO が、AMDGPU ドライバー用に AMD によって開発された古いバックエンドと同等の機能を達成した後、RADV ドライバーを新しいバックエンドに切り替えることが可能になりました。このバックエンドは、RadeonSI OpenGL ドライバーで引き続き使用されます。 バルブによるテスト 明らかになったACO はコンパイル速度の点で AMDGPU シェーダー コンパイラーのほぼ XNUMX 倍速く、RADV ドライバーを備えたシステムで実行すると一部のゲームで FPS が向上することが実証されています。

RADV Vulkan ドライバーは、ACO シェーダー コンパイル バックエンドを使用するように切り替えられました。

RADV Vulkan ドライバーは、ACO シェーダー コンパイル バックエンドを使用するように切り替えられました。

ACO バックエンドは、非常に高いコンパイル速度を達成するだけでなく、ゲーム アプリケーション シェーダーに可能な限り最適なコード生成を提供することを目的としています。 ACO は C++ で書かれており、JIT コンパイルを念頭に置いて設計されており、ポインターベースの構造を避けて高速反復データ構造を使用します。 コードの中間表現は完全に SSA (Static Single Assignment) に基づいており、シェーダに応じてレジスタを正確に事前計算することでレジスタ割り当てを可能にします。

追加: 現時点では、ACO は Mesa RADV Vulkan ドライバーでのみ機能します。 しかし、ACO開発者は 確認済み次のステップは、ACO の機能を拡張して RadeonSI OpenGL ドライバーをサポートする作業を開始し、将来的にはこのドライバーでデフォルトの LLVM シェーダー コンパイラーを ACO が置き換えることができるようにすることであると述べています。

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

コメントを追加します