你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

学习记录-Linux图形栈:基于DRM和Wayland

2021/11/21 21:44:34

基本概念

1.Wayland:显示服务器,是一种协议
2.Weston:是Wayland协议的的实现
3.drm又包括:
drm framebuffer:
	它是一块内存区域,我把它理解为一块画布,驱动和应用层都能访问它
plane:
	图层
crtc:
	读取当前扫描缓冲区的像素数据,生成视频模式定时信号.它对内连接 Framebuffer 地址,
	对外连接 Encoder。它会扫描你画布(Framebuffer)上的内容,叠加上 Planes 的内容,传给 Encoder。
encoder:
	将内存的 pixel 像素 编码(转换)为显示器所需要的信号,比如 DVID、VGA、YPbPr、CVBS、Mipi、eDP 等
connector:
	直译为 连接器。Connector 常常对应于物理连接器 (VGA, DVI, FPD-Link, HDMI, DisplayPort, S-Video …) 
	他会连接将一个物理显示输出设备 (monitor, laptop panel, …)
	
基本流程:
app将画好的surface,通过wayland协议提供给compositor,compositor将来自各个应用的surface合成一帧,
通过drm接口最终画在Framebuffer上。
#运行的compositor
weston --tty=2 -B=drm-backend.so --idle-time=0&

Linux 图形栈概览:Wayland 协议, Compositor 和 DRM 子系统


在这个图形栈中,App 将画好的 surface,通过 Wayland 协议提交给 Compositor。Compositor 将来自各个应用的 surface(s) 合成为一帧,通过 DRM 接口最终画在 Frame Buffer
参考资料:Linux 图形栈一览:基于 DRM 和 Wayland

X11

x11是一个很古老的系统,有了几十年的历史,一开始设计之初,是受限于个人电脑的弱小,所以将所有渲染相关的计算都放在服务端,所谓的X Server. 所有的客户端可以试运行在本地的,也可以试运行在网络上的,称之为客户端XClient. X Server和XClient通信的手段就是X Protocol. 所有的客户端接收到鼠标、键盘等事件,都要通知Server,然后Server经过计算,通知Driver进行描画。

Wayland

所有的渲染都发生在客户端,简单来说,Wayland是一套display server与client间的通信协议,而Weston是Wayland的参考实现。其官网为:http://wayland.freedesktop.org/