Gallium3D
Gallium3D は3Dグラフィックスハードウェアアクセラレーションのためのソフトウェアライブラリであり、Linuxとオープンソースのグラフィックス専門技術をもつ技術会社であるTungsten Graphicsによって開発されている。Gallium3DはグラフィックスAPIとオペレーティングシステム間を操作し、第一目標をドライバの開発を容易にし、いくつかの異なるドライバの別の方法で実装し重複したコードを一つにまとめることにしている。これはより良い分業を提供し(例えば、メモリ管理をカーネルのDRIドライバに残す)現代的なハードウェアアーキテクチャをサポートすることでなされている。
Gallium3Dは現代的なハードウェア上に見られるシェーダーユニットのような標準的なハードウェア機能を公開するための統一されたAPIを提供する。そのため、OpenGLやOpenVGのようなグラフィックス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]。
現状
[編集]最初の実装と既に部分的に動作するドライバはCellとIntel GPUドライバである。作業はスケルトンドライバを提供するATI Radeonカード上で完了し[5]、nouveauチームは開発をGallium3Dに移している[6][7]。
2008年7月13日時点でNouveau開発はGalliumフレームワーク専用でなされている。古いDRIドライバは Freedesktop.org 上のMesaリポジトリのmasterブランチから削除された[8]。
脚注
[編集]- ^ zrusin. “GPGPU”. 2008年4月1日閲覧。
- ^ zrusin. “OpenVG and accelerating 2D”. 2008年4月1日閲覧。
- ^ zrusin. “Gallium3D LLVM”. 2008年4月1日閲覧。
- ^ “DRI2”. 2008年4月1日閲覧。
- ^ Michael Larabel. “Gallium3D Status Update Q1'08”. Phoronix. p. 2. 2008年4月1日閲覧。
- ^ “Nouveau Companion 36”. 2008年4月1日閲覧。
- ^ “Nouveau Companion 37”. 2008年4月1日閲覧。
- ^ “nouveau: say goodbye to the old DRI driver... (cgit on FDO)”. 2008年11月9日閲覧。
外部リンク
[編集]- Mesa 3D official page
- Gallium-0.1 branch git repository on Freedesktop cgit.
- Gallium-0.2 branch git repository on Freedesktop cgit.
- An article on Gallium3D by Zack Rusin
- LWN article
- Presentation about Gallium3D (Akademy 2008からのビデオ)
- BitBlit.org: Generic GPU-Accelerated Video Decoding (Galliumを使ったGSoCプロジェクト)
- Low Level Virtual Machine (Gallium によって使われる動的リコンパイラバックエンド)
- Gallium3D - Graphics Done Right AKademy 2008におけるZack Rusin.プレゼンテーション