コンテンツにスキップ

英文维基 | 中文维基 | 日文维基 | 草榴社区

Gallium3D

出典: フリー百科事典『ウィキペディア(Wikipedia)』
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]

現状

[編集]

最初の実装と既に部分的に動作するドライバはCellIntel GPUドライバである。作業はスケルトンドライバを提供するATI Radeonカード上で完了し[5]nouveauチームは開発をGallium3Dに移している[6][7]

2008年7月13日時点でNouveau開発はGalliumフレームワーク専用でなされている。古いDRIドライバは Freedesktop.org 上のMesaリポジトリのmasterブランチから削除された[8]

脚注

[編集]
  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日閲覧。
  5. ^ Michael Larabel. “Gallium3D Status Update Q1'08”. Phoronix. p. 2. 2008年4月1日閲覧。
  6. ^ Nouveau Companion 36”. 2008年4月1日閲覧。
  7. ^ Nouveau Companion 37”. 2008年4月1日閲覧。
  8. ^ nouveau: say goodbye to the old DRI driver... (cgit on FDO)”. 2008年11月9日閲覧。

外部リンク

[編集]