查看原文
其他

openKylin 2.0揭秘 | wlcom合成器解读

小K openKylin
2024-08-22
开源聚力,共创未来点击蓝字,关注openKylin~

kylin-wayland-compositor(以下简称wlcom)是一款基于wlroots的wayland合成器,由openKylin社区Wayland SIG组负责研发。wlcom具有渲染性能高、X兼容性好、安全性高、功能可灵活定制、第三方依赖少等技术特性,目前已完成大部分开发工作,正在进行功能完善与系统适配,后续将搭载在openKylin 2.0版本上正式发布!

wlcom合成器的成功研发,实现了操作系统图形栈底层核心子系统的进一步突破。下面我们就将围绕wlcom合成器的框架与特性为大家进行详细解读。





一、wlcom合成器框架介绍

wlcom合成器框架如下图所示:



01应用接口层

结合UKUI桌面环境及系统应用开发框架需求,提供应用功能接口,便于灵活的系统功能开发提供外部插件功能接口,满足第三方应用定制化功能需求,灵活扩展;

02功能框架层

特效框架采用单独特效库加载模式并支持特效自定义渲染方式,如自定义着色器;X兼容框架提供获取屏幕图像数据能力、远程控制软件输入转换等能力;输入管理框架实现多席位输入设备管理,解决多用户无法同时输入问题;

03基础支撑层

利用协议封装接口实现合成器所需的窗口管理、输入事件处理等基础功能;支持Pixman、Opengl、Vulkan等渲染后端;

04协议封装层

结合UKUI组件功能需求,整合原有kde扩展协议,去繁从简,实现ukui-shell协议、针对多领域场景需求,增加相关安全协议;

05硬件支持层

提供对底层GPU、输入设备驱动交互支持、支持景嘉微、摩尔线程等国产显卡及华为SOC集成芯片;

06系统依赖库

仅依赖系统的pixman、libdrm等基础库。














二、wlcom合成器特性介绍

1.渲染性能高

在性能上消除了原始窗口管理器的交互开销,同时支持多卡、多输出、多并发渲染加速接口,在不启用动画和装饰性渲染的情况下,渲染后端既支持纯CPU绘制,也支持OpenGL/ES、Vulkan,大幅提升业务场景渲染能力。


2.X兼容性好

目前国内主流应用还处于由X显示框架向wayland显示框架切换的过渡阶段,特殊X接口转换的缺失,导致X应用部分功能异常,自研X兼容增强插件,通过桥接转换协议打通特殊X接口到合成器通路,实现X应用广泛兼容。


3.安全性高

新增wayland下防截屏安全协议,支持用户指定窗口防截屏及全屏防截屏,实现对截图内容、区域进行管控,对敏感数据强化保护,并提供Qt下防截屏设置接口,方便第三方软件使用等,满足多领域的场景安全需求。


4.功能可定制

通过整体设计架构改造,解耦系统关联组件,实现插件式框架结构,全插件式管理,支持功能组件灵活裁剪、按需定制,功能实现更高效。


5.第三方依赖少

既不依赖KDE、GNOME等成熟桌面环境,也不依赖QT、GTK等UI工具包,仅依赖pixman、libdrm、xkbcommon等基础库。






三、关于Wayland SIG

openKylin Wayland SIG小组由麒麟软件有限公司发起成立,致力于新一代图形显示服务器相关技术研究,包括wayland合成器、X兼容等,提供wayland相关软件包的技术规划、设计、开发、维护和升级服务,共同推动新一代图形服务器技术发展及落地。

  • 邮件列表:

    wayland@lists.openkylin.top

  • SIG主页:

    https://gitee.com/openkylin/community/tree/master/sig/Wayland


openKylin(开放麒麟)社区旨在以“共创”为核心,在开源、自愿、平等、协作的基础上,通过开源、开放的方式与企业构建合作伙伴生态体系,共同打造开源操作系统顶级社区,推动Linux开源技术及其软硬件生态繁荣发展。

社区理事成员单位包括麒麟软件、普华基础软件、中科方德、麒麟信安、凝思软件、一铭软件、中兴新支点、元心科技、中国电科32所、技德系统、北京麟卓、先进操作系统创新中心、飞腾、兆芯、龙芯中科、景美、京东科技、平头哥、申泰信息、海光等21家产业同仁和行业机构。


来源:Wayland SIG
审核:openKylin

往期推荐:







国赛来袭!中国研究生操作系统开源创新大赛报名开启,十万奖金等你来~

给开发者更好的选择!支持多种AI框架的openKylin 2.0 alpha版本来啦!

openKylin城市用户组招募啦,超多权益等你来!

openKylin社区2023年度贡献榜单公布!
修改于
继续滑动看下一个
openKylin
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存