Linux 图形新闻
两个季度前,我们看到 Glamor 和 XWayland 有望取得重大进展。半年后,我们看到这些技术使得 X 和 Wayland 社区取得了巨大进步。
X.org
X.org 的 Xserver 在 7 月发布了 1.16.0 版本,该版本带来了 Glamor、XWayland 和非 PCI 设备支持;1.16.1 版本于 9 月发布,修复了一些错误。Glamor 基于 OpenGL 标准构建,以提供硬件加速的 X 功能,该功能以前通过特定于硬件的视频驱动程序提供 - 这些驱动程序有时默认使用较慢的软件回退。因此,Glamor 允许视频驱动程序开发人员简化其特定于硬件的代码,从而减少了对软件回退的需求。Xephyr 在此版本中也获得了 Glamor 支持;Xephyr 用于“无头”测试,借助 Glamor,它能够更接近原生 X 会话的性能。Glamor 还使 XWayland 支持更易于实现,从而使其能够在此版本中集成到 Xserver 中。非 PCI 设备支持允许在通过 PCI 总线以外的方式连接的视频设备(包括 USB 视频)上显示图形。
mesa 的 10.3 版本于 9 月中旬发布,引入了面向游戏开发者的 GLX_MESA_query_renderer、一个新的软件光栅化驱动程序 kms_swrast_dri 和 GLX DRI3 GPU 卸载支持。此外,许多视频驱动程序也取得了进展。10.4 版本预计将于 12 月发布。完整的 OpenGL 4.0 支持将在 mesa 11.0 中引入。
Intel 视频驱动程序正在引入使用 Glamor 进行 2D 加速。从历史上看,Intel 驱动程序已经尝试了一系列 2D 加速技术:XAA、EXA、UXA,以及最近的 SNA。每一代似乎都变得更加 Intel 特有,并且需要越来越多的软件来完成。因此,转向与硬件无关的 Glamor 标志着一个重大的战略转变:随着桌面环境转向 3D 合成环境,对最大 2D 加速的需求有所缓解。因此,从维护的角度来看,拥有一个被广泛采用和开发的良好的 2D 加速技术,比拥有一个只有少数人理解的、高度优化、特定于硬件的 2D 加速技术更好。
Cairo
Cairo 最终在 10 月初发布了新的稳定版本 1.14.0。该版本主要是在过去一年中收集的大量错误修复,以及最近进行的构建和测试系统改进。主要的新功能是增加了一个广受欢迎的图像缩小功能;这些新的缩放算法是为图像后端实现的,并被其他后端用于回退需求。其他功能包括对设备转换和缩放的改进,这提供了 HiDPI 支持,以及对 PDF 中 JBIG2 mime 数据的支持。三星的一项性能优化将 GL 的 VBO 大小优化为 1M,EGL 的 VBO 大小优化为 16k。
三星的 Caskbench 基准测试在 9 月下旬在列表中公布。该基准测试提供了一组用于比较 Skia 性能与 Cairo 性能的测试。Caskbench 的测试运行表明,cairo-gl 性能自上次审查以来已显著提高;对于某些测试,改进幅度达到了几个数量级。
Wayland
Wayland 项目涉及四个代码库:一个标准协议包,称为 Wayland;一个名为 Weston 的参考实现;以及 Weston 依赖的两个库 libinput 和 libxcbcommon。后两个库可供其他 Wayland 实现和 X.org 的 Xserver 使用。
Wayland 在 1.6 时间范围内主要接收错误修复,但也在测试套件中获得了一些新的测试用例、键盘重复率控制以及服务器自动查找空闲套接字名称的方法。改进的错误处理现在允许 Wayland 客户端更好地诊断错误情况。
Weston 1.6 经历了更多的开发活动。其中大部分集中在桌面环境在移植到 Wayland 时所需的改进和修复。Xdg-shell 协议定义了桌面环境应提供的标准功能,由于桌面环境所需的重要更改,该协议经历了一些变动;希望该协议将在 1.7.0 版本中重新稳定下来。键盘重复率和数字锁定启动状态现在是可配置的。桌面 shell 崩溃的处理得到了平滑处理,以防止一些黑屏冻结。
Libinput 在本季度发布了两个版本(0.5.0 和 0.6.0),其中包含许多清理和错误修复。
在 0.5.0 版本下
- 指针加速(特别是对于触摸板)得到了改进。
- 已添加基本的防误触检测。
- 现在通过 libinput API 公开了更多的设备信息,并且配置 API 的雏形正在出现 - 作为新的配置 API 的副作用,触摸板点击到单击现在默认为“关闭”。
0.6.0 主要是一个错误修复版本,尽管也进行了一些功能开发
- libinput 不再允许查询所有键的当前状态 - 应用程序现在必须监视事件,库初始化时按下的任何键现在都会立即传播事件。
- 触摸板校准已进行了重大改进,并已添加到新的配置 API 中
Weston/Wayland 1.7 计划于 2 月中旬完成。正在添加的新功能之一是 Presentation 扩展,它可以提高子表面嵌入式视频播放的性能。
对于 libinput,许多开发工作都集中在通过调整和优化手指点击/释放时序等来改善触摸设备上的用户体验。
最终想法
X.org 仍在向前发展。借助 Gallium3D 和 Glamor 等技术实现更广泛的代码共享,维护和优化此代码的工作量也将相应扩大。X 变得更加精简和高效,因为它放弃了过时的特定于硬件的代码,并使其能够应对图形硬件市场中更新和更深奥的角落。
与此同时,当 X 竞相在现代化的同时精简时,Wayland 正在不断壮大以达到功能完备的状态。
上个季度我们提到了 Fedora 的 Wayland 计划。9 月下旬,宣布已实现可用的 GNOME/Wayland 端口。仍有许多工作要做,包括 xdg-shell 中尚不可用的几个窗口管理功能,以及几个 DND 相关的功能。
随着 Qt 和 EFL 也移植到 Wayland,我们现在正处于一个阶段,我们应该开始看到更多技术倾向的用户开始尝试使用基于 Wayland 的桌面进行日常使用。最终,将移植大量的应用程序,这将使主流用户能够进行切换。如果我们开始在未来六个月内看到这种桌面迁移的迹象,我们很可能会看到 Wayland 和类似 Wayland 的技术在 16.04 LTS 周期中成为常态。
当然,这假设 Wayland 继续呈现出比坚持使用 X.org 更具吸引力的优势。X.org 不是一个静态项目!正如我们通过引入 Glamor 和 Present 等技术所看到的,X.org 能够不断地重塑自我,并在此过程中减少切换到 Wayland 将带来的好处清单。Wayland 架构仍然比 X.org 有几个优势;需要关注的一个关键事项是 X.org 中的每个应用程序的安全性。X 已经可以在某些配置中以非 root 用户身份运行;如果它也可以在某种沙箱模式下运行应用程序,那么 Wayland 的安全优势可能会变得不那么引人注目。
Bryce Harrington 是三星美国研究院的高级开源开发人员,专注于开源图形。在加入三星之前,他领导 Canonical, Ltd. 的 Ubuntu X.org 团队,并专注于 Ubuntu 发行版的图形和输入基础设施的稳定性。Bryce 的职业生涯始于航空航天工业,曾在 Aerospace Corporation、Hughes Space and Communications 和 TRW 担任航天器推进工程师。后来,他加入了开源开发实验室,担任高级性能工程师,从事 NFSv4 测试和自动化测试系统的开发。他是 Inkscape 项目的创始人兼开发人员,并担任 Inkscape 董事会主席。Bryce 拥有南加州大学的 BS-AE 学位和加州理工学院的 MS-AE 学位。