Gallium3D

Linuxのグラフィックス・スタックの図
DRIとGallium3Dは異なるドライバーモデルを持つが、ともに多数のコードを共有する。
An possible example matrix when implementing the Gallium3D driver model. Through the introduction of the Gallium3D Tracker Interface and the Gallium3D WinSys Interface, only 18 instead of 36 modules are required. Each WinSys module can work with each Gallium3D device driver module and with each State Tracker module.

Gallium3D3Dグラフィックスハードウェアアクセラレーションのためのソフトウェアライブラリであり、Linuxとオープンソースのグラフィックス専門技術をもつ技術会社であるTungsten Graphicsによって開発されている。Gallium3DはグラフィックスAPIオペレーティングシステム間を操作し、第一目標をドライバの開発を容易にし、いくつかの異なるドライバの別の方法で実装し重複したコードを一つにまとめることにしている。これはより良い分業を提供し(例えば、メモリ管理をカーネルのDRIドライバに残す)現代的なハードウェアアーキテクチャをサポートすることでなされている。

Gallium3Dは現代的なハードウェア上に見られるシェーダーユニットのような標準的なハードウェア機能を公開するための統一されたAPIを提供する。そのため、OpenGLOpenVG英語版のようなグラフィックスAPI、OpenCLなどのGPGPU基盤や、(Wine互換レイヤーにある)Direct3Dのような3D APIは、Gallium3D APIを対象とするスタックトラッカーと呼ばれる単一のバックエンドのみを必要とする。一方、Mesa 3Dには個々のハードウェアプラットフォームに対して異なるバックエンドが必要で、いくつかの異なるAPIでは将来のオーバーヘッドを犠牲にしてOpenGLへの翻訳が必要である[1][2]。 さらに、モジュラ構造のGallium3Dを使うことで、LLVMコンパイラスイートを利用し、オンザフライでシェーダーコードを最適化するためのモジュールを作成する作業が進行中である[3]

Gallium3Dのもとでは、DRM (Direct Rendering Manager英語版) カーネルドライバはメモリを管理し、(現在[いつ?] DRI2 と呼ばれている)DRI (Direct Rendering Infrastructure) ドライバはよりGPU処理指向になる。Mesa 3Dのもとでは実行不可能だと考えられているメモリ管理問題の解決をこれによって行える[4]

  1. ^ zrusin. “GPGPU”. 2008年4月1日閲覧。
  2. ^ zrusin. “OpenVG and accelerating 2D”. 2008年4月1日閲覧。
  3. ^ zrusin. “Gallium3D LLVM”. 2008年4月1日閲覧。
  4. ^ DRI2”. 2008年4月1日閲覧。

From Wikipedia, the free encyclopedia · View on Wikipedia

Developed by Nelliwinne