HYPERでんちの GPU 年表更新しました。
ほとんどが Mobile デバイスの追加です。
2009年になって一気に Shader 対応端末が普及したことがわかります。
この流れを推し進めているは OpenGL ES 2.0 。
OpenGL ES 2.0 は Direct3D 10 以降のように Shader パイプラインしか定義しておらず
GL ES 2.0 対応であればシェーダーベースの GPU であることがわかります。
デバイスの機能的にもシェーダーに進むそれなりの理由があるのでしょう。
例えば一部 GPU はすでにユニファイドシェーダーを採用しています。
ShaderModel 4.0 にかなり近いか、最初から 4.0 に対応し得る設計です。
シェーダーユニットの再利用は実行効率的にも優れており、ユニットの個数で
スケーラビリティを保ちやすいなどのメリットが考えられます。
また CPU の補助として GPGPU 的な使い方も視野に入れているようです。
他にも先行しているデスクトップ向け 3D ゲームの移植しやすさや同等のテクニックが
使えること、デスクトップ向け GPU の設計を流用できる、バス帯域の制約から演算の
比重を高めるなど、考えられる理由があります。
表を見ているとかつてのデスクトップ向け 3D アクセラレータが多数登場し、
各社多種のビデオカードがしのぎを削っていた頃を思い出します。
ほぼ 2強で占められたハイエンドと違い、様々な GPU が使われているようです。
電力も面積も限られているモバイル向け GPU にとってバス帯域は大きな問題です。
タイルベースで深度判定のみ先行し、最小限のフラグメントのみレンダリングする
PowerVR と同じように、AMD もチップ内の少量かつ高速な RAM を用いたタイルベース
レンダリングを行っているようです。この辺の工夫も非常に興味深いところです。
WindowsVista/7 のウィンドウが GPU 描画になったのと同じように、Mobile デバイス
でも 3D アクセラレータを用いた表現が重要となっています。
一般のアプリケーションも当たり前のように GPU を使っているなんて
3D アクセラレータが乗っていなかったり、乗っていてもドライバが無くて使えなかった
昔からは考えられないことです。
とはいえ今時の CPU は速いので、MI-Zaurus + CPU だけでレンダリングしていた頃を
考えれば CPU でも十分描画できるのかもしれません。
OpenGL越しに触っている限りハードウェアは隠蔽されてしまっていますが、今時のモバイル向けハードウェアはフレームバッファ直書き以外にオーダリングテーブルのようなものを持っているのでしょうか(PowerVRは持ってそうだけど)。GDIみたいな描画インターフェースが非同期描画をサポートしてるんなら、もう少し通常使用時のパフォーマンスが上がっても良さそうなのですが。
そうそう、HT-03Aのデスクトップはハードウェアアクセラレーションで動いているのが壁紙のハードウェアタイリングから見えます。つぶつぶ感がPS1の16bitモードのゲームみたいです。
オーダリングテーブルが意味するところがわからなかったので
全然見当違いの事書いてたらごめんなさい。
コマンドバッファの実行がどの程度インテリジェントになっているのか
ということでしょうか。この辺はハードの詳細がわからない限り憶測に
なると思いますが、DMA があるかどうかなら yes でしょう。
HT-03A は MSM7201A ですね。きちんとディザ入ってるんですね。
コマンドバッファの実行についてです。描画コマンドの列のことをオーダリングテーブル(OT)って言うんじゃなかったでしたっけ?PS1ローカル用語なのかな?
ちなみに、触った感じHT-03Aはなんか非同期描画やってそうな雰囲気があります。T-01Aはやってなさそうな雰囲気があります。WindowsMobileのGDIドライバがAndroidに比べて単にしょぼいだけですかね。
コマンドバッファやプッシュバッファは GL や D3D といった API 仕様を
考えても存在しています。
描画命令自体がコマンドやデータをバッファに書き込むだけなので。
ただこれがそのままハードウエアと互換があるかどうかはまた別の話しです。
コマンドを GPU 自体がどのように実行するか、ディスプレイリストの仕様
とかドライバの実装とかはさすがにわからないです。
普通のウィンドウ描画のことなら、WM は古いしデスクトップコンポジション
のような機能もないし、従来の Windows と同じだと思います。
リソース管理からしてもともと 3D ハードウエアを活用するように
できていないのでしょう。
Android は最初からそのあたりも考慮されてるんじゃないでしょうか。
T-01A は touchkeysip の確認でちょっと触りたい。