■ 2004年11月30日 [OpenGL][雑文] またビデオカードが壊れた
3DLabs Wildcat VP870
ううう,またビデオカードが壊れてしまいました.いや,本当のことを言うと,今度は「壊して」しまったんですが…
だってケースファンがうるさかったんだもん
ちょっとメインマシンの中をいじっていていたんです.そのときに妙にケースファンがうるさく感じたので,通電中のマザーボード上の端子からケースファンの電源コードを,「何の気なしに」抜いてしまったんです.あー,なんでそんなことしちゃったんだろー.「ビー」という音とともに画面が乱れたので,慌てて一旦電源を落としてから再起動したんですが,電源投入直後から画面が乱れたままで,どうしようもありません.お気に入りというか,いろんな意味で大事なビデオカードだったので,ショックが大きい.ごめんなさい(誰に謝ってんだ?)
GeForce4 はアキュムレーションバッファが遅い?
とはいえ,このままでは仕事ができません,手持ちのビデオカードをやりくりして RADEON 9600 XT や GeForce4 Ti 4600 に差し替えてみました.GeForce4 Ti 4600 はもう2世代も前のビデオカードですが,oglbench なんかだと RADEON 9600XT よりも高いスコアを出してくれます.ところが,授業の説明用に作ったアキュムレーションバッファを使ったアンチエリアシングのデモが,このビデオカードでは妙に遅いのです.Wildcat VP870 や RADEON 9600 XT とは比較になりません.どうも,ソフトウェアエミュレーションになっている気がします.ううむ…最近のものは改善されたのだろうか.かの GeForceFX 5900XT が入っている学生さんのマシンでも試してみようかな.
追記
oglbench のログをよく見比べてみました.GeForce4 Ti 4600 はもとのマシンに戻したので CPU が違いますが (Pentium IV 3.0GHz),RADEON 9600XT (Pentium 4 2.4GHz) では 3D accumlation buffer と 3D blur がそれぞれ 1778.7 と 1425.1 なのに対し,GeForce4 Ti 4600 では 19.2 と 13.4 になっていました.また,これら以外に際立った差が出ていたのは 2D put GL_COPY half tone のスコアで,RADEON 9600XT の 1662.7 に対して,GeForce4 Ti 4600 では 5.6 でした.
これに対して,3D のトータルスコアでは RADEON 9600XT より GeForce4 Ti 4600 が勝っています(CPU が違うので比較にはなりませんが,1624.9 対 2750.2).これはポリゴンやテクスチャ関係の処理において,GeForce4 Ti 4600 が RADEON 9600XT の2倍から最大3倍の性能を出しているからです.
この結果を見ると,oglbench で計測できる範囲において RADEON 9600XT ではまんべんなくハードウェアアクセラレーションが効いているのに対して,GeForce Ti 4600 では一部の機能が「デチューン」されていたり (3D lines smooth),ソフトウェアエミュレーションになっているように思えます.
これは多分 nVIDIA のマーケティング上の「選択」なんでしょうけれど,私としては,今までこういうことを真面目にチェックしてこなかったことに気づかされたわけで,結構痛かったりします.例えば,テクスチャのスケールコピーや glReadBuffer() / glDrawBuffer() なんかは「遅いものだ」と思い込んできたんですが,そこにビデオカードの「個体差」という要素もあることに考えが及んでませんでした.
(んでも,比較できるほどビデオカードが揃えられるようになったのは最近だし…ぶつぶつ…)
再度追記: GeForce FX 5900XT の結果
oglbench を学生さんのマシンで動かしてみました.GeForce FX 5900XT ではアキュムレーションバッファにハードウェアアクセラレーションが効くようです.RADEON 9600XT の2倍から3倍の速度が出てました.あと某所のマシンが Quadro4 だったので,これでもこっそり oglbench 動かしてみました.こっちはやっぱりアキュムレーションバッファが遅いようです.