X 和 wayland 学习
背景
自动化需要适配wayland
,而我不知道啥是wayland
学习
简而言之
X客户端及窗口管理器知道绘制什么内容,但是没有渲染能力,凡事都要交给X Server;到了Wayland这里,Server和窗口管理器功能合并为Compositor(合成器),Wayland客户端也能够直接渲染,Wayland体系中大大减少了进程间的沟通。
在X中:
内核捕获鼠标点击事件并发送给X server。
X server会计算该把这一事件发送给哪个窗口(事实上,窗口位置是由Compositor控制的,X server并不能够正确的计算Compositor做过特效变化之后的按钮的正确位置)。
应用程序对此事件进行处理(将引发按钮更新动作)。但是,在此之前它得向X server发送绘制请求。
X server接收到这条绘制请求,然后把它发给视频驱动来渲染。X还计算了更新区域,并且这条“垃圾信息”发送给了Compositor。
这时,Compositor知道它必须要重新合成屏幕上的一块区域。当然,这还是要向X server发送绘制请求的。
开始绘制。但是X server还会去做一些不必要的本职工作(窗口重叠计算、窗口剪裁计算等)。
Wayland架构
在Wayland中:
内核捕获鼠标点击事件并发送给Wayland Compositor。
由于是直接发给Wayland Compositor的,所以Wayland Compositor会正确地计算出按钮的位置。同时它会把这一事件发送给按钮所在的应用程序来处理。
应用程序直接渲染,无需向Wayland Compositor请求。只需在绘制完成之后向Wayland Compositor发送一条信息表明这块区域被更新了。
桌面环境
硬件加速
硬件加速是指在计算机中通过把计算量非常大的工作分配给专门的硬件来处理以减轻中央处理器的工作量之技术。尤其是在图像处理中这个技术经常被使用。
显卡就是属于硬件加速:在计算机技术起步的时候屏幕显示是中央处理器的任务。后来一块专门的芯片被用来显示荧光屏上的字符。再后来图像芯片还开始管理自己的显示内存和显示颜色。随着图形用户界面的出现显示卡开始处理简单的、一再重复出现的任务,比如画方块、直线和圆。操作系统把这些图像指令传给特殊的显示卡驱动程序,再由这些驱动程序交给显示卡处理。中央处理器虽然也可以在软件状态下处理这些任务,但是这样的话计算机的速度就要慢得多。
学习路径
https://zhuanlan.zhihu.com/p/503627248
https://zh.wikipedia.org/wiki/Wayland