パスワードを忘れた? アカウント作成
39595 journal

beroの日記: WaylandはX(プロトコル)サーバじゃない

日記 by bero

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ファイルを見てくれ。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

開いた括弧は必ず閉じる -- あるプログラマー

読み込み中...