Linux 图形新闻
去年十月,我们上次对图形的关注 集中在九月份 X 开发者大会上制定的计划。在那之后的三个月里,这些计划已经实现,重新确立了 X.org 相对于 Wayland 和其他合成显示服务器的持续相关性。
的确,虽然 Wayland 在开发方面继续显示出稳健的进展,但用户和发行版的采用仍然很少,重点主要集中在利基领域(例如汽车)。 尽管如此,本季度在提高 Wayland 的灵活性方面取得了有趣的进展,这可能使其能够进入更广泛的利基市场和用例。
X.org 稳定版本新闻X.org 项目在本季度取得了丰硕的成果,多个软件包获得了一些主要的新版本
- 英特尔视频驱动程序 (xf86-video-intel) 在其 3.0 版本的发布之前已经发布了几个候选版本。3.0 版本将默认切换到使用 Sandybridge New Acceleration (SNA)。SNA 是英特尔最新的 2D 加速方法,与当前的 UXA 加速方法相比,有望提供更快的渲染性能和更好的功耗。SNA 在过去几年中经历了广泛的测试,并且已作为 Ubuntu 等发行版中的默认设置发布。另一个新功能是在转换/旋转的输出上实现无撕裂渲染。3.0 系列还带来了大量硬件启用修复、构建修复、性能调整、图形故障修复以及其他稳定工作。
- mesa 达到了 10.0 版本。主要的新功能是 OpenGL 3.3 API 的实现。该 API 是为英特尔驱动程序实现的;开源 Radeon 和 Nouveau 视频驱动程序的 OpenGL 3.3 支持将由这些项目随着时间的推移来完成。与此同时,还修复了游戏、演示和 h264 视频播放遇到的大量渲染问题。随后发布了 10.0.1 版本,纠正了阻止 Mesa 10.0 与已发布版本的 X 服务器一起工作的回归。
- xorg-server 在年底前的 12 月 27 日发布了 1.15.0 版本。此版本带来了 Direct Rendering Infrastructure 3 (DRI3) 和 Present Extension,它们为直接渲染应用程序(如游戏和视频播放器)在合成环境中运行时提供了高效的渲染路径。这为 X.org 带来了类似 Wayland 的渲染性能,并解决了一些主要的长期存在的故障/撕裂类型错误。除了 DRI3 之外,此版本还引入了主要的 GLX 代码重写。一个值得注意的缺失功能是缺少对 XWayland 或 XMir 的任何支持,因此这两个项目都需要继续携带他们自己的 X11 兼容性补丁。
- xorg-server 还发布了先前 1.14.x 分支的几个稳定版本,最值得注意的是 1.14.3 和 1.14.4 中对被动/主动抓取、触摸侦听器和指针同步的修复,以及 1.14.5 的一系列 randr 修复。
- presentproto 1.0 和 dri3proto 1.0 的发布标志着 Keith Packard 的 Present 扩展工作取得了重大进展。这添加了一个新的协议和 API,以便为客户端提供一种更好的方式,在合成环境中将渲染数据重定向到硬件。
虽然 X.org 的开发像往常一样遍布各个领域,但最近有几个特别关注的领域
- 上面提到的 DRI3 和 Present 扩展已登陆主线 xserver,并包含在 1.15 版本中。代码审查和测试发现了一些问题。
- 编译器警告受到了高度关注,仅本月就收到了大量的补丁。这项工作针对的是 1.16.x 分支。
- 多显示器支持在几个不同的领域得到了改进,这得益于 NVIDIA 添加了 randr 1.2 支持以及多 GPU 和混合图形的最新进展。randr 改进包括对主/从 GPU 的支持,以及允许热插拔从 GPU,并将更改报告到图形堆栈。
- Xephyr 代码库的代码清理和常规更新,包括将其迁移到使用 XCB 而不是直接 glx/libXv/Xlib。
- 通常对 glx 和 Xi/dix 等的分散修复。触摸设备支持和主动/被动抓取处理代表了输入更改的大部分。
刚刚发布的 Enlightenment Foundation Libraries (EFL) 1.8 版本系列是一个里程碑式的版本,因为它具有功能集以及自 1.7 (~14 个月) 以来极其漫长的时间。
此版本包括 Eo (E 对象) 基础设施,这将更容易生成代码;三星以色列团队一直在开发“Eolian”,这是一个旨在完全做到这一点的项目。在 EFL 开发者日期间,还就能够自动生成 C++ 代码进行了相关讨论,这将使使用这种语言进行轻松开发成为可能。Elev8 绑定已经为 Javascript 提供了一些支持,并且这种基础设施很可能也会改进这一点,并支持更多语言。
1.8 版本的另一个主要功能是引入了异步渲染,这将大大提高执行繁重渲染操作时的应用程序响应速度。这在嵌入式设备上尤其重要,嵌入式设备正在获得越来越多的内核,从而允许并行操作来补偿较低的时钟速度,以确保在启用多个内核时获得更好的用户体验。
此版本的最后一个主要功能是将所有各种库(不包括 Elementary)合并到一个存储库和构建树中,这使得打包和分发工具包变得容易得多。
EFL 开发新闻展望未来,EFL 1.9 系列版本计划于 2 月在新任发布经理 Stefan Schmidt 的领导下发布。他已经提出并概述了一个流程,他计划通过该流程进行 3 个月的发布周期。E18 版本也即将发布,E19 的工作已于 7 月开始。
Cairo 稳定版本新闻尽管早先有所预测,但本季度没有 Cairo 稳定版本发布,但 pixman 收到了几次更新。pixman 0.32 版本系列带来了图像缩放的性能改进以及大量的错误修复。0.31.2 是此分支上的开发版本,而 0.32.2 和 0.32.4 是后续版本,提供了一些构建修复。
Cairo 开发新闻除了少数 错误修复 外,Cairo 最近几个月的开发活动一直很少。邮件列表上的活动很少,提交到邮件列表的提交也很少。列表中的讨论主要集中在使用问题上。在过去三个月中,只有十次提交。
在 2013 年,Inkscape 项目 引入了一个彻底的变革,用 Cairo 替换了他们的渲染引擎 libnr。Cairo 曾在代码库中零星使用过,但各种问题阻止了全面切换。通过与 Google Summer of Coding 和 Cairo 开发社区合作,他们能够看到这些问题得到解决(或在 Inkscape 代码库中绕过它们),现在已经转移到 Cairo 作为默认设置。由于在转换过程中采取了谨慎措施,他们没有遇到任何重大回归,实际上已经解决了一些长期存在的功能和性能问题。
Inkscape 正在准备他们的 0.91 版本,预计将于 2014 年春季发布。除了 Cairo 转换外,其他主要新功能包括
- 用于显示和 PNG 导出的 Cairo 渲染
- 用于所有过滤器的 OpenMP 多线程,可显着提高编辑速度
- 文本工具的重大改进,带有排版扩展
- 新的测量工具
- 字体设计功能
- 符号库和对 Visio 模具的支持
- 跨平台 WMF 和 EMF 导入和导出
- 改进了对 Corel DRAW 文档的支持,以及 Visio 导入器
- 支持真实世界的文档和页面尺寸单位,例如毫米
- 众多可用性改进
Wayland 稳定版本新闻
Wayland 项目由两个代码树组成:“Wayland”,它只是协议定义,以及“Weston”,它是协议的后端服务器的演示合成器。上个季度,Wayland 发布了 1.3.0 版本,Weston 发布了 1.3.0 和 1.3.1 版本。
由于 Wayland 协议现在被普遍认为是稳定的,因此 Wayland 1.3 版本相对较轻。一个值得注意的增强功能是添加了语言绑定支持,这允许使用更高级的语言编写客户端。
Weston 1.3 带来了很多变化
- 使用 libva 的实时 h.264 屏幕捕获。稍后可能会被 gstreamer 替换。这可能作为网络流媒体功能的基础。
- libhybris 支持,因此 weston 可以与 Android EGL/GLES2 驱动程序一起使用。
- 更好的多资源输入设备支持,允许不同的子系统可以接收来自任意数量的指针、键盘或触摸资源的事件。
- 从 X 到 wayland 的拖放。
- 使用 gl 或 pixman 缓冲区的客户端的 RGB565 像素格式。
- 各种触摸设备支持的修复和改进。
Weston 1.3.1 版本是一个重要的错误修复版本,因为 1.3.0 版本发布时带有一系列已知问题。这修复了几个严重的崩溃和挂起,并解决了几个功能缺陷。
Wayland 开发新闻
XDG Shell 协议在过去几个月中受到了广泛关注,并且一些初步原型设计正在进行中,即“westoy”——weston 的项目内分支,新协议插入在 weston 核心和 shell 之间。该协议旨在标准化 shell 需要进行的合成器调用,这样 weston 可以换成不同的但协议兼容的合成器,而无需对 shell 进行任何修改。
Wayland/Weston 1.4 版本计划于 1 月中旬发布,第一个 alpha 版本 (1.3.91) 于 12 月 17 日发布。此版本中包含的一些功能包括
- 将 subsurface 和输入法移动到 wayland 中,以及 subsurface 的缩放。Subsurface 为使用子窗口显示视频内容的应用(例如带有嵌入式视频播放器或游戏的 Web 浏览器)提供了更有效的设计。
- logind 后端。
- Surface/view 分割,具有缩放和裁剪支持。
- 输出克隆和每个输出的多纹理边框。
- 修复 wl_shm 缓冲区截断漏洞。
- eglSwapInterval(0)。
- 嵌套的 wl_buffer 直通。
- 触摸抓取以启用触摸聚焦。
- 使用 gstreamer 或 libva 辅助库而不是直接 libva 用于 weston 编码。
- 运行时可切换渲染器后端(例如 Pixman 与 OpenGL)
- ExposÈ 功能。
即将举行的活动
- linux.conf.au,澳大利亚珀斯,2014 年 1 月 6-10 日
- FOSDEM 2014,比利时布鲁塞尔,2014 年 2 月 1-2 日
- LibreGraphics Meeting: LGM2014 - 2014 年 4 月 2-5 日:德国莱比锡
2013 年对于 Linux 中的图形来说是戏剧性和争议性的一年,但到目前为止,对整个图形堆栈的实际更改更多是渐进式的而不是革命性的。但是随着我们接近几个 Linux 发行版的长期支持版本,这是可以预料的,因为在这些产品的消费者中,稳定性比新颖性更重要。明年夏天可能是发行版进行重大转换的更安全窗口;我们应该期望届时在桌面发行版中看到主要的图形系统转换。XWayland 支持在 X 服务器中的登陆可以被视为 Wayland 桌面未来的早期指标,因为它是至关重要的先决条件。
我们将在下个季度再次进行检查,届时希望发行版将制定其 LTS 后的计划,我们将能够预测 X.org 和 Wayland 的未来。与此同时,请在 Twitter 上关注我们 @SamsungOSG。