X最主要的問題還是在於它真的就只是一個Server:
- 我自己保管著畫布
- 每個套用負責告訴我該怎麽畫屬於本套用的東西
- 我把每個套用的圖形資訊匯總起來問compositor「我要怎麽把他們畫一起」
- 在和Compisitor一番長談之後,畫好了。送出到螢幕上。
真正X做的不好的地方就在於:
- 匯總了所有套用的圖形資訊。也就是說所有套用都可以存取到這張畫布上的所有資訊,不管是不是自己的。
- 自己不懂畫老是在問compositor。螢幕撕裂(tearing),幀數不高都是這個造成的。
Wayland的做法是:
- 我在記憶體裏按我顯示器幕的大小做出來一些 - DRM buffer。
- 我自己會compositing,於是規定好那個套用畫哪裏,並告知那些套用。
- 套用去他們自己該去的地方畫。
- 畫完了,我送出。
其實還是那個去除中間商賺差價的故事。