今年のクリスマスプレゼントにフリーのATIドライバは期待できるのか?
こうした状況に対処すべく、真の意味でのフリードライバの提供を目指すプロジェクトの1つに、AMD/ATIから出されているR500およびR600系カード用のAvivoドライバの開発を目指したものが存在している。なおプロジェクト名ともなっているAvivoとは、この系列のビデオカードでの利用を目的に定められた仕様のことである。ドライバ開発のまとめ役を務めているJerome Glisse氏の説明では、同プロジェクトでの開発作業は現在進行中で、「年末には、ある程度完成した3Dアクセラレーションを利用できるようになるでしょう」とのことだ。
フリーソフトウェアのコミュニティにおいて、グラフィックス関係を専門としている人間は少数派でしかない。コミュニティの一員としてGlisse氏が最初に参加したのは、ATIカードの3Dアクセラレーション機構を解析するために立ち上げられたR300プロジェクトであった。結局このプロジェクトは安定版ドライバを提供することなくその役割を終えたが、その参加メンバの多くは同様の活動を現在も継続しており、例えば3Dグラフィックスに関するOpenGL仕様をフリーソフトウェア形態で実装することを目指したMesaプロジェクトを始め、DRI(Direct Rendering Infrastructure)プロジェクトや、Nvidiaカード用のフリードライバ開発を目指したNouveauプロジェクトなどに参加している。Glisse氏自身は今でもATIカードに主眼を置いているが、その主たる理由は「このカードに関する作業をしている人間は、私以外にあまりいないみたいですから」とのことだ。
Glisse氏の率いるプロジェクトが他の3ないし4名から成るメンバとともに(Glisse氏によると、この人数はどの時点の数字を取るかで変動するとのことだ)Avivoドライバの開発に手を染め出したのは2007年初頭のことである。もっとも、具体的な活動に着手できたのは数カ月後の話であり、最初のドライバのオフィシャルリリースにこぎつけられるであろう時期も今のところ確定していない。
そして大方の予想に違わず、この作業の大半はATIからリリースされたGNU/Linux用バイナリであるfglrxドライバのリバースエンジニアリングに費やされており、また以前のR300プロジェクトで得られたデータが大いに役立っているとのことだ。「どこのチップメーカもそうですが、過去のリリースと同じ内容のものがかなりの頻度で使い回されています。つまり、Avivoについて知りたい情報はR300関係の資料の中に潜んでいるだろうということです。実際、両者の違いはかなり少ないですね。おかげで大幅な時間の節約ができそうです」とGlisse氏は語る。
現状のAvivoドライバは開発の最初期段階にあるに過ぎず、とても一般的な用途に供することはできないとのことだ。「今のドライバが行えるのは、実質的にモードの設定だけです」とGlisse氏は語る。より具体的に言うと、プロジェクトの開発陣が今までに確立しているのは、コンピュータとビデオカードの情報交換に必要なDAC(Digital to Analog Converter)、LVDS(Low-Voltage Differential Signaling)、TMDS(Transition Minimized Differential Signaling)などのハードウェア仕様に関するプログラムだとのことだ。Glisse氏の言葉を借りれば、これらは「画面上に情報を表示させる基本機能に過ぎません」ということになる。
こうしたものを実用的なドライバとするには、より多数の開発作業が必要となる。もっともGlisse氏としては、オンボードRAMへのアクセス、カードのアンダー/オーバークロッキング、表示やサスペンドといった機能に関連するカードの初期化を扱えるだけの知識を、近い将来にプロジェクトが確立できることには自信があるそうだ。
これはGlisse氏の希望的観測かもしれないが、X Window Systemにおける2D表示用のデータ転送に必要なXAAアクセラレーションなど、残りの作業の大部分についてはR300プロジェクトの成果をそのまま移植できると見られている。また、プロジェクトのメンバによる“豊富な経験に基づく推測”だとして同氏の語るところでは、「この3Dエンジンは、R400(ドライバ)のサポートするものと多くの部分で共通しています。最大の相違点はフラグメントシェーダ(ピクセル単位での表示計算をする機能)に関するものですが、グラフィック処理ユニットにおけるこの機能については、AMDから一般に公開されているドキュメント群の中に該当する解説が含まれているだろうと私は考えています」とのことだ。
もっともこうした説明をフォローする形でGlisse氏が補足しているのが、「私個人としては、今すぐこの仕事を進めるのに多少気乗りがしない点があります」ということだ。Glisse氏の予測するところでは、将来的なMesaやDRIでのアーキテクチャ変更によって2Dおよび3Dアクセラレーション用のOpenGLがXorgで直接利用可能となるであろうし、それならば現状で個々のドライバ開発プロジェクトごとにこうした機能開発を並行して進めることは作業の重複になってしまわないかという懸念が浮かんでくる。つまり、今の段階で2Dおよび3Dアクセラレーション機能の移植を進めるのは“労力の無駄になる可能性”があるため、同氏としては、可能であればその前にカードの初期化機能を構築しておきたいとしている訳だ。
Glisse氏としては、Avivoプロジェクトの成果がBSDやSolarisなど他のUnixベースのシステムに移植されるようになることを歓迎はするが、自ら開発する3Dアクセラレーション用のDirect Rendering Managerに充分な機能を実装できるかを懸念しているとのことだ。
AMDによるATIの買収から1年以上が過ぎたが、現時点において同社からはフリードライバ開発の奨励を伺わせる発言は聞かされていない。しかしながらGlisse氏としては、AMDがAvivoプロジェクトに協力することで、開発負担が軽減される可能性を完全には捨て去ってはいないそうだ。
「AMDの関係者とは何人かこのプロジェクトについて話し合ったことがあるので、向こう側も当方の存在に気づいているはずです。AMDとしてもオープンソース系ドライバを歓迎する気があるのかもしれません」と同氏は語っている。
仮にこれが実現した場合として同氏が予測しているのが、Avivoその他の同種プロジェクトが重要な役割を果たすようになる将来像だ。「オープンソース系ドライバを必要とするなら、いずれの企業も外部に協力を求めることになります。そうした協力を求めない限り、コミュニティからのサポートを得たり、そこで行われている活動の成果を利用することはできません。私の見るところ、AMDは現在その開発活動の進め方の変更を模索しているのではないでしょうか。マザーボードその他の製品において、AMDはコミュニティによる協力下での開発を始めようとしているのですから。当方としてもAMDの方針が変わって、コミュニティとの共同開発こそが最適であると分かってもらえることを希望しているところです。これが意外に早く実現してくれたらいいのですが」
こうした最善のシナリオを描きつつも、Avivoプロジェクトとしては最悪の事態に備えて、従来型のドライバ開発を独力で進める準備を徐々に整えつつある。またGlisse氏としてはより多数の協力者を募りたいところだが、実際に必要な人材は、グラフィックドライバを扱った経験を有す上に長期の開発プロジェクトに参加する意思のある人間になるのがネックということだ。「この分野は、オープンソースの世界において、新規の人間が参入する余地がまだまだ残されている数少ない領域の1つだと私は思っているのですが」
Bruce Byfieldは、コンピュータジャーナリストとして活躍しており、Linux.com、IT Manager’s Journalに定期的に寄稿している。