DirectX を介した OpenGL の実装は OpenGL 3.3 との互換性を実現しており、Mesa に含まれています

Collabora 社は、DirectX 3 (D12D12) API 上に OpenGL 作業を整理するためのレイヤーを実装するメイン Mesa コンポジションへの D3D12 Gallium ドライバーの採用を発表しました。 同時に、ドライバーが WARP (ソフトウェア ラスタライザー) および NVIDIA D3.3D3 ドライバー上で動作する場合の OpenGL 12 との互換性テストに合格したことが発表されました。

このドライバーは、D3D12 のみをサポートするドライバーを備えたデバイスで Mesa を使用する場合に役立ちます。また、D3D12 API 上で実行する OpenGL アプリケーションを移植するための開始点としても役立ちます。 特に、このドライバーを使用すると、Windows で Linux 実行可能ファイルを確実に起動できるようにする、WSL (Windows Subsystem for Linux) サブシステムを実行している環境でグラフィカル アプリケーションの操作を整理できます。

開発は、ゲームを D3D11 から D12D3 に変換するためのオープン D11D3On12 ツールキットと、D3D12 上に標準グラフィック プリミティブを実装する D3D12TranslationLayer ライブラリを開発している Microsoft エンジニアと共同で行われています。 検討中のプロジェクトに基づいて、Microsoft は、完全な OpenGL サポートを提供していない Windows デバイス上で OpenGL ベースのアプリケーションを実行できるようにするレイヤーをすでに準備しています。 特に、ARM プロセッサを搭載した Windows デバイス上で Photoshop が動作することを確認できました。

この実装には、Mesa 用のドライバーと、Mesa で使用される NIR シェーダーの中間表現を、DirectX 3 でサポートされ、LLVM に基づいたバイナリ DXIL (DirectX Intermediate Language) 形式に変換する NIR から DXIL へのシェーダー コンパイラー (D12D12 ランタイム) が含まれています。 3.7 ビットコード (Microsoft の DirectX Shader Compiler は LLVM 3.7 のフォークです)。 Mesa ドライバーは、Gallium インターフェイスを使用し、OpenGL コマンドを受け入れ、NIR から DXIL へのトランスレーターを使用して D3D12 コマンドを生成します。D3D12 コマンドは、D3D12 システム ドライバーを介して GPU で実行されます。 これとは別に、OpenCL コンパイラや OpenCL ランタイムなど、OpenCL が DXNUMXDXNUMX 上で確実に動作するようにコンポーネントが開発されています。

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

コメントを追加します