最近のX.orgにおける2Dアクセラレーションの改善について

 ゴールデンウィークなのでちょっと息抜きを。
 Intelのドライバは最近はSNAという新しいアーキテクチャを実装していて、まだデフォルトでは有効になっていないのだが、だいぶ高速なようだ。

 この他、Glamorというのが出てきた。これはOpenGLを使ってX Winddow Systemのアクセラレーションを行うライブラリである。各種ドライバの内部で使われることを意図しているそうだ。Gallium3DのX.org state trackerとやってることは近い。Galliumの場合はOpenGLではなくGallium用の中間形式に変換するところ、アクセラレーション対象が広い(GalliumはXのアクセラレーションだけじゃなく、OpenGLとかOpenCLとかも扱う)ところがGlamorとの違いになる。SNAと比べるとまだ遅いみたいだけど、今後どうなるかちょっと期待している。ただ、OpenGLをまともにアクセラレートしてくれるドライバが少ないわけで、そこんところがちょっと微妙かなぁ。
 Cairo自体も1.12でかなり高速化されているのだが、これは一部のドライバのバグを踏むということで、まだ各ディストリビューションには導入されていない。
 こちらの記事では最近のドライバについていくつか実験をして、簡単な2Dアクセラレーション(単なるアルファブレンディングとか)であればCPUを使った方がGPUを使うより速い、なぜならGPUにデータを転送するのは結構時間がかかるから、という結論に達している。Cairoみたいな描画モデルだと描画関数それぞれに対してまともにGPUにデータ転送しちゃうので遅くなりやすいよね、シーングラフみたいに描画命令列を一旦メモリ上に保持して後で効率良く実行できるといいのかもね、ともある。
 最近のマルチコアCPUだと、2DアクセラレーションぐらいならCPUにやらせた方がいいのかもね、というのはその通りかもしれないが、なんのためにGPUがついてるのかわからなくなるなぁ…。