Collabora は、DirectX 上で OpenCL および OpenGL を実行するためのアドオンを開発しています

コラボ会社 提示 Mesa 用の新しいガリウム ドライバー。これは、DirectX 1.2 (D3.3D12) をサポートするドライバー上に OpenCL 3 および OpenGL 12 API の作業を整理するためのレイヤーを実装します。 コード 公開済み MITライセンスの下で。

提案されたドライバーを使用すると、OpenCL と OpenGL をネイティブにサポートしていないデバイスで Mesa を使用できるようになり、D3D12 上で実行する OpenGL/OpenCL アプリケーションを移植するための開始点としても使用できます。 GPU メーカーの場合、D3D12 をサポートするドライバーのみが利用可能な場合、サブシステムにより OpenCL および OpenGL のサポートを提供できるようになります。

当面の計画には、OpenCL 1.2 と OpenGL 3.3 の互換性テストに完全に合格すること、アプリケーションとの互換性を確認すること、および Mesa の主要構成に開発を組み込むことが含まれます。 開発はマイクロソフトのエンジニアと共同で行われます。 開いた ツール D3D11On12 D3D11 から D3D12 およびライブラリへのゲームの転送用 D3D12翻訳レイヤー、D3D12 の上に標準グラフィック プリミティブを実装します。

この実装には、Gallium ドライバー、OpenCL コンパイラー、OpenCL ランタイム、および Mesa で使用される NIR シェーダーの中間表現を、DirectX 12 でサポートされ、 LLVM 3.7 ビットコード (DirectXシェーダーコンパイラ Microsoft の LLVM 3.7 は本質的に LLVM XNUMX の拡張フォークです)。 OpenCL コンパイラは、LLVM プロジェクトとツールの開発に基づいて準備されています。 SPIRV-LLVM.

OpenCL 拡張機能を備えたソースは、clang を使用して LLVM 中間疑似コード (LLVM IR) にコンパイルされ、その後 SPIR-V 形式の OpenCL カーネルの中間表現に変換されます。 SPIR-V 表現のコアは Mesa に渡され、NIR 形式に変換され、最適化されて NIR-to-DXIL に渡され、DirectX 12 ベースのランタイムを使用した GPU での実行に適した DXIL 形式の計算シェーダーが生成されます。
Mesa で使用されている OpenCL 実装である Clover の代わりに、新しい OpenCL ランタイムが提案されており、DirectX 12 API へのより直接的な変換が可能です。

Collabora は、DirectX 上で OpenCL および OpenGL を実行するためのアドオンを開発しています

OpenCL および OpenGL ドライバーは、Mesa で提供される Gallium インターフェイスを使用して準備されています。これにより、OpenGL 固有の詳細に入ることなくドライバーを作成でき、OpenGL 呼び出しを本質的に最新の GPU が動作するグラフィックス プリミティブに近づけることができます。 ガリウム ドライバー、OpenGL コマンドを受け入れ、NIR から DXIL へのトランスレーターを使用する場合
D3D12 ドライバーを使用して GPU 上で実行されるコマンド バッファーを生成します。

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

コメントを追加します