beroの日記: WaylandはX(プロトコル)サーバじゃない
3D描画する場合、
昔はOpenGL命令をGLXプロトコルでXサーバに送ってXサーバが描画していましたが、
今はクライアントが直接描画します(Direct Rendering Infrastructure、DRI)。
また文字を描く場合、
昔は「この文字(列)描いて」と言うだけでXサーバがフォント探してラスタライズして描いてましたが、
今はクライアントがラスタライズして「この画像描いて」というだけです。
(たぶん。ソース見てないけどfreetypeがクライアント側にあるので)
さらに昨今、2Dでも半透明や変形などの3Dアクセラレータの機能を使いたい(cairo等)となると、(3D機能は直接描画なので)もうXサーバいらなくね?
正確には、グラフィックハードウェア(とマウスやIM)の調停機能だけあれば描画機能いらなくね?
そうなるとXプロトコルとか描画とかそのリソース管理とか古いコードは全部捨てだよね
書き直したほうがはやいんじゃね?
昔のXサーバに3D用のDRIをくっつけたのが今のXサーバなわけですが、
DRIで2Dも描画するようにして(一部のグラフィックドライバはX.orgで既に対応済みらしい)、
DRIだけ残して若干のマウスやIM機能をつけた(絶賛開発中)のがこのWaylandのようです。
X(プロトコル)サーバの再実装ではなく、いわばDRIマネージャとでもいうべき別物といっていいでしょう
#かなり想像入ってるので各自ウラをとるように
---
追記
早過ぎる公表は公表しないより悪い、と俺は思う。
http://hoegsberg.blogspot.com/2008/11/premature-publicity-is-better-than-no.html
Phoronixが記事にして、さらにslashdotが取り上げたので、
俺がこっそりやってたプロジェクトは秘密じゃなくなった。
しかも見出しが間違ってる。これはXサーバじゃない。
小さい表示サーバと合成マネージャだ。
それにまだまだ修正とhand wavingが必要なできたばっかりのプロジェクトだ。
核となる考えは、すべてのウィンドウがリダイレクトされ、すべての描画をクライアント側で行い、バッファのハンドルをサーバに渡して、表示サーバの中の合成マネージャが合成して表示する、ってことだ。
Xがすぐ無くなるわけじゃないので、目標の一つはWayland上でXサーバを動かすことだ。まず(Xnestみたいな)全画面で、つぎにrootlessにする。
詳細はNOTESファイルを見てくれ。
WaylandはX(プロトコル)サーバじゃない More ログイン