VistaのOpenGL対応について


昨日のエントリでは私の説明が不足していて、いろいろ誤解を招いたようで申し訳ない。少し補足しておきたい。


私がVistaをインストールしたマシンのビデオカードはGeForce7600である。このドライバはVistaインストール時に自動的にインストールされる。(以下、このドライバのことをVista標準ドライバと呼ぶことにする。) Vista標準ドライバでOpenGLのパフォーマンスが著しく悪いのを私は問題としていた。


Vistaインストール直後、ビデオカードのドライバは一見正常にインストールされているように見えるし、実際正常に動作している。また、DirectXを使ったアプリのパフォーマンスが出ないということもなく、AERO GLASSはbase layerにD3D9を使用しているが、これも普通に表示されている。念のために、Vista標準ドライバでベンチマークをとり、そのあとベンダのサイトからdownloadしてきたVista用のドライバ(これをVista用ドライバと呼ぶことにする)をインストールしてベンチマークの値を比較したが、ほぼ同じ数値であった。要するにD3D9を使う限りは全くその速度に違いはない。


かたや、OpenGLVistaインストール直後のドライバだと非常にパフォーマンスが悪い。WindowsXPのときの半分ぐらいのフレームレートと書いたが、正確にベンチをとりなおしたところ、半分どころか1/4ぐらいしか出ていなかった。Vista標準ドライバとVista用ドライバとで、OpenGLを用いるアプリでは極端に差が出る。


この原因はどこにあるのだろう?


ユーザーからの強い要望によりMicrosoftが「OpenGLのICDドライバをサポートする」と発表したのが2006年のGDCの発表(3月)であり、ビデオカードのメーカーは急遽そのあとVista用のOpenGLのICDドライバを書くはめになったわけである。


ビデオカードのメーカーにしては、降ってわいたような災難であり、ビデオカードのメーカーを責めることは出来ないと思う。Microsoftも本来サポートする予定のなかったOpenGLのICDドライバをサポートすることにしたのは、大英断だったと思う。


要するに別に誰も悪くはないと思うのだが、VistaのRTMにはOpenGLのICDドライバをバンドルするのが間に合わなかったというのは現実だ。GeForceでこの有様なので他のビデオカードでも同じような状況だと思う。つまり、「Vistaでは初期状態ではOpenGLのパフォーマンスは著しく悪い」と言っても過言ではない。


Vista用のビデオカードのドライバをインストールしていないのだから当たり前だろ」と昨日のコメント欄でも散々書かれているが、私はそれは当たり前ではないと思う。


繰り返しになるが、標準ドライバでD3D9がフルスピード出ているという事実(AERO GLASSはさくさく動いている)がある。また、GeForce7600自体は2006年2月ごろ発売になったビデオカードであり、Vistaの登場する2007年1月末から起算するとほぼ1年にもなる。1年前に発売されたビデオカードなのに、Vistaの標準ドライバではOpenGLを用いたアプリがろくに動かないという現実。


ここまで読んでくれた読者ならば、こうなっているのもやむなしと言うところだろうが、何も知らない一般ユーザーはこの理由をわかってくれるだろうか?また、あるアプリがDirectXを用いて書かれているのかOpenGLを用いて書かれているのかなんてユーザーが見てわからないだろうから、せいぜい、OpenGLを描画エンジンに使ったアプリ(ゲームとは限らない)を使ってそのアプリがOpenGLで書かれているということすらわからずに「なんだこのアプリ、おせーな」と言われるのは想像に難くない。私のYanesdk.NETも描画エンジンにOpenGLを用いているだけに、そういう事態は極力避けたいのだ。


VistaではWindowsUpdateを通じて最新のドライバが探せる仕組みがあるようなので、もしかするとすぐにドライバが自動的にupdateされるのかも知れない。それならば本日のエントリは杞憂と言うものだが。