1、Openkylin Wayland合成器wlcom介绍2024.3打造中 国 操 作 系 统 核 心 力 量打造中 国 操 作 系 统 核 心 力 量陈霖翔麒麟软件有限公司CONTENTSCONTENTS目录录1.wayland协议与X协议差异2.wayland合成器发展现状3.wlcom合成器介绍4.wlcom合成器未来规划X11显示协议存在渲染效率欠缺、安全性不强、社区维护活跃度低等不足,正逐步被wayland显示协议替代X11显示协议 始于1984,其设计已略显陈旧,自身架构缺陷凸显,社区活跃度低X11显示协议中合成器是一个X显示服务外的独立组件,通信开销大,且存在窗口内容与合成器不同步
2、的问题,容易造成图像撕裂X11显示框架安全性不强,X客户端可篡改其他X客户端窗口属性及显示内容X11合成管理器必须主动向X显示服务获取所有客户端图像数据进行图像合成。该过程将耗费一定时间,导致图像显示延迟wayland显示协议 架构简洁,性能及灵活性出色,是下一代主流显示协议wayland合成器与Wayland显示服务合为一个整体组件,通信开销低,窗口内容与合成器同步,保证每一帧没有撕裂wayland 显示框架隔离了各客户端间的输入和输出,提高客户端的安全性wayland合成器被动接收客户端图像数据,实时进行图像合成X Client_lX Client_nX serverCompositore
3、vdevKMSwayland CompositorevdevKMSwayland client_l wayland client_nX11显示框架wayland显示框架kernelkernel2316231445 wayland协议与X协议差异1wayland合成器是wayland显示框架中的核心组件,提供接收输入事件、管理窗口显示、输出屏幕图像等基本功能。目前社区已研发出多个合成器,wlcom合成器取众家之长,追求兼容性好、性能强、易维护westonweston是wayland合成器的参考实现,实现Wayland的标准协议和基本功能为汽车、嵌入式、机械、工业、机顶盒和电视等非桌面用途提供了一
4、个基础的功能桌面环境未考虑窗口分层显示、工作区、应用特效等桌面用户使用需求以功能实现为主要目的,并未考虑性能优化仅具备X应用的基础显示能力kwinKDE社区开发,基于Qt和kwayland实现支持虚拟工作区、窗口层级设置,窗口显示位置设置等功能具备图像模糊、最大/小化动画等多种特效代码架构复杂,维护难度大相关代码依赖庞大,Qt、kwayland、KF5 等组件相互依赖,升级困难提供基本完善的X兼容能力,支持X核心协议,但未考虑部分特殊用户场景sway设计简单高效,基于wlroots实现采用平铺式窗口显示模式,更好利用屏幕空间美观度不足,不支持各种动画特效平铺式窗口显示模式入门难度高,且不符合普
5、通用户的使用习惯仅具备X应用的基础显示能力开源开源waylandwayland合成器发展现状合成器发展现状2框架自主设计:简化系统依赖、灵活功能拓展、增强X兼容性现有开源wayland合成器基于某些成熟开发框架,依赖庞杂,整体升级不便,wlcom仅依赖基础库wlcom通过整体设计架构改造,实现插件式框架结构,全插件管理,方便功能灵活扩展新增X兼容增强模块,解决X应用的生态兼容问题应用层系统库依赖框架QT开发框架键鼠输入分辨率设置窗口堆叠显示工作区管理圆角阴影主题设置主副屏切换空闲锁屏应用Dbus接口Pixman渲染窗口特效窗口管理Opengl渲染Vulkan渲染KwaylandKDE Fram
6、eworklibdrmlibinputlibcairolibxkbcommon插件式框架接口扩展插件功能扩展插件渲染扩展插件协议扩展插件抽象化X兼容增强插件安全协议插件分辨率设置窗口堆叠显示工作区管理wlcom合成器介绍3系统依赖简化、X兼容性增强、功能定制灵活wlcom合成器介绍3应用接口层功能框架层基础支撑层协议封装层硬件支持层系统依赖库特效框架采用单独特效库加载模式并支持特效自定义渲染方式,如自定义着色器X兼容框架提供获取屏幕图像数据能力、远程控制软件输入转换等能力输入管理框架实现多席位输入设备管理,解决多用户无法同时输入问题抛弃了kwin框架依赖,仅依赖系统的pixman、libdrm