openKylin wlcom 正式开源!Wayland 显示合成器革新之作
通用Linux操作系统显示服务协议,经过近30年的发展,正处于从X11到Wayland的技术换代阶段,当前基于Wayland协议的合成器虽取得了一定成果,但依然存在功能不完善、安全性弱、代码架构复杂、升级困难等问题。
为此,由openKylin社区理事长单位麒麟软件旗下多媒体技术团队成立的Wayland SIG组,经过深入调查与技术研究,研发了kylin-wayland-compositor(以下简称wlcom)。wlcom合成器的成功研发,实现了操作系统图形栈底层核心子系统的进一步突破。
一、wlcom架构简介
wlcom是一款基于wlroots的Wayland合成器,以实现高性能、高安全、易维护为目标,具有渲染性能高、安全性高、生态兼容好、功能可灵活定制、第三方依赖少等技术特性。其基本架构如下图所示:
此次开源主要涉及外部插件接口库、功能框架接口库、输入管理插件、特效插件、窗口管理插件、图像渲染合成插件等代码。
二、wlcom特性介绍
wlcom是openKylin 2.0的默认Wayland合成器,与kwin合成器相比,其主要特性提升如下:
01图形渲染提升
优化渲染流程,过滤不可见surface,删除damage重复区域,减少渲染次数,并采用混合渲染方式对窗口装饰及多个damage进行批量渲染,提高渲染效率与渲染性能。如同时运行100个终端程序,CPU使用率wlcom比kwin明显降低。
02安全加固提升
新增Wayland下防截屏安全协议,支持用户指定窗口防截屏及全屏防截屏,实现对截图内容、区域进行管控,对敏感数据强化保护,并提供Qt下防截屏设置接口,方便第三方软件使用等,同时新增水印功能,满足多领域的场景安全需求。
03生态兼容提升
目前国内主流应用还处于由X显示框架向Wayland显示框架切换的过渡阶段,特殊X接口转换的缺失,导致X应用部分功能异常,自研X兼容增强插件,通过桥接转换协议打通特殊X接口到合成器通路,实现X应用广泛兼容。
04交互体验提升
对输入输出等功能进行了细化和增强,新增了多个快捷键、支持应用混合缩放等功能,并构建特效合成框架,统一特效与图形合成接口,新增特效种类、优化特效呈现。
05 功能扩展提升
通过整体设计架构改造,解耦系统关联组件,实现插件式框架结构,全插件式管理,支持功能组件定制灵活、实现更高效。
06 维护易用提升
摒弃现有开发框架,既不依赖KDE、GNOME等成熟桌面环境,也不依赖QT、GTK等UI工具包,仅依赖pixman、libdrm等基础库,解决现有合成器组件相互依赖所导致的升级维护困难问题,实现灵活升级。
三、wlcom场景展示
1.窗口圆角:组件窗口具有圆角特效
2.多窗口堆叠排列:多窗口一次按区域进行有规则堆叠排列
3.窗口毛玻璃:窗口透明区域具有毛玻璃模糊特效
四、wlcom代码仓库地址
代码仓库地址:
https://gitee.com/openkylin/kylin-wayland-compositor
运行时需要使用的库或程序:
● wlroots, wayland, libinput, xkbcommon
● libseat, libdrm, libsystemd, librsvg-2.0
● cairo, pango, pangocairo, pixman-1
● gbm, json-c, libudev
● xwayland, xcb (optional)
依赖安装可通过apt进行(配置了deb-src源)
apt build-dep kylin-wayland-compositor
编译选项见meson_options.txt,简单的编译指令:
meson setup build -Dbuildtype=debugoptimized
ninja -C build
meson install -C build --skip-subprojects
程序参数如下:
"Usage: kylin-wlcom [options] [command]"
" -h, --help Show help message and quit.\n"
" -d, --debug Enables full logging, including debug information.\n"
" -D, --debug <options> noxwayland or logtostdout.\n"
" -s, --session <process> Run session on startup\n"
" -v, --version Show the version number and quit.\n"
" -V, --verbose Enables more verbose logging.\n"
通过-D参数可以方便运行时调试, 支持参数如下:
-Dnoxwayland 关闭xwayland支持
-Dlogtostdout 将日志打印到stdout
-Dloginmtime 使用monotonic time输出日志
默认情况下,日志打印到文件$HOME/.log/kylin-wlcom.log。
五、关于Wayland SIG
openKylin Wayland SIG小组由社区理事长单位麒麟软件发起成立,致力于新一代图形显示服务器相关技术研究,包括Wayland合成器、X兼容等,提供Wayland相关软件包的技术规划、设计、开发、维护和升级服务,共同推动新一代图形服务器技术发展及落地。
-
邮件列表:
wayland@lists.openKylin.top
-
SIG主页:
https://gitee.com/openKylin/community/tree/master/sig/Wayland

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Visual Studio 2022 v17.11 发布
Visual Studio 2022 版本 17.11 正式发布 (GA),此版本主要是基于用户反馈的各项改进。 “每项增强、每项修复和每项新功能均根据你的反馈而制定。无论你是在构建 Web、桌面、云还是游戏应用程序,Visual Studio 2022 v17.11 都旨在让你的开发体验更流畅、更快速、更直观。” 提高生产效率 增强的搜索功能可帮助用户快速找到所需的代码。 改进代码审查工作流程,使潜在问题的发现以及团队合作变得更加容易。 改进拉取请求创建体验。 一些常见的键盘快捷键现在与其他流行 IDE 中的键盘快捷键相匹配。 GitHub Copilot – 更智能、更安全 根据用户代码 AI 自动建议 breakpoints,提升调试效率。 改进符号识别功能,以确保用户获得最准确的建议。 更精确、更具上下文感知的代码完成,减少了手动编辑的需要。 提升安全性,GitHub Copilot Business 客户可防止指定文件或资源库被用于为 GitHub Copilot 提出的代码补全建议提供信息。 调试和诊断 改进异步代码的处理和诊断,帮助用户更快地解决问题,修复异步异常。 增强...
- 下一篇
腾讯开源自动驾驶仿真软件 TAD Sim
腾讯宣布开源自动驾驶仿真软件 TAD Sim。TAD Sim 基于腾讯专业的游戏引擎、厘米级数字孪生三维重建技术、集成工业级的车辆动力学模型、种类丰富的物理级传感器仿真和数据驱动的AI交通流,可以完成感知、决策、控制算法等实车上全部模块的闭环仿真验证,满足全栈算法使用需求,极大地降低研发成本并缩短研发实际周期。 产品架构图 主要特点 1、极具真实性的高保真场景还原 基于高精度三维重建和领域迁移技术,可厘米级精度真实还原道路场景,实时输出场景元素真值,无需标注自动生成各种逼真的天气路况,低成本提高测试场景覆盖率,极大地节约采集标注的人力物力成本。支持通过领域迁移算法和时序一致性约束,将仿真场景渲染图转换为真实风格,并作为TAD Sim的相机仿真原始数据输出。 基于数据采集的高精度厘米级三维重建 领域迁移技术实现摄像头数据真实风格转换 2、高精度车辆动力学模型 支持27自由度车辆动力学模型,可灵活配置动力学参数,实现支持油动、电动及混动车型的仿真。 3、种类丰富的高精度传感器模型 内置物理级/半物理级传感器模型,包括激光雷达、毫米波雷达、摄像头、超声波雷达、IMU等多种传感器模型。 4、数...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8安装Docker,最新的服务器搭配容器使用
- Linux系统CentOS6、CentOS7手动修改IP地址
- 2048小游戏-低调大师作品
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合Thymeleaf,官方推荐html解决方案