X最主要的问题还是在于它真的就只是一个Server:
- 我自己保管着画布
- 每个应用负责告诉我该怎么画属于本应用的东西
- 我把每个应用的图形信息汇总起来问compositor「我要怎么把他们画一起」
- 在和Compisitor一番长谈之后,画好了。提交到屏幕上。
真正X做的不好的地方就在于:
- 汇总了所有应用的图形信息。也就是说所有应用都可以访问到这张画布上的所有信息,不管是不是自己的。
- 自己不懂画老是在问compositor。屏幕撕裂(tearing),帧数不高都是这个造成的。
Wayland的做法是:
- 我在内存里按我显示屏幕的大小做出来一些 - DRM buffer。
- 我自己会compositing,于是规定好那个应用画哪里,并告知那些应用。
- 应用去他们自己该去的地方画。
- 画完了,我提交。
其实还是那个去除中间商赚差价的故事。