Linux 图形新闻
X.org 开发者大会于今年九月在波特兰举行,为讨论一系列与 OpenGL、驱动程序、X 服务器、Wayland 和 Mir 相关的主题提供了一个场所。核心 X.org 的开发一直处于停滞状态,这从服务器近期没有足够的更改来保证 1.15 版本的发布就可以看出,但 Mesa 在实现 OpenGL 规范方面取得的进展弥补了这一点。
本月出现了许多次要软件包的错误修复点版本发布。xorg-server 1.14.3 可能是这里最有趣的更改,因为 1.14 分支正在许多 Linux 发行版中使用,并将作为重要的稳定分支维护一段时间。此版本主要侧重于 Peter Hutterer 反向移植的输入修复,这使得触摸支持更加可用,以及一些针对 gpu 屏幕和 glx 的修复。
xf86-video-intel 版本的发布值得关注,因为驱动程序中添加然后删除了 XMir 补丁,原因是社区认为英特尔做出了有争议的管理决策。除此之外,还看到了一些关于 intel-virtual-output 代码的工作,以及对 SNA(Sandybridge 的新加速)的持续修复,因为他们开始默认切换到 SNA。UXA(统一加速架构)将仍然作为可通过 xorg.conf 设置的替代 AccelMethod 提供。SNA 和 UXA 是 -intel 驱动程序独有的 2D 加速技术,与 EXA 和其他开源驱动程序中使用的旧 XAA 技术形成对比。一些发行版,例如 Arch 和 Ubuntu,已经默认启用 SNA,因为它已被证明比 UXA 更快且相对稳定。
Chris Wilson 发布了他的 xf86VGAarbiter 工作,将 VGA 初始化从 xf86 公共代码移动到 vgaHW 模块。VGA 仲裁允许 X 服务器通过内核为多个 VGA 设备提供旧式 VGA 访问。
在 XDC 上讨论了放弃对 XAA 以及仅限 XAA 的驱动程序的支持。XAA(XFree86 加速架构)于 1996 年推出,多年来,许多 X 驱动程序被引入并使用它;然而,如今,它对于现代图形硬件几乎没有速度优势,并且很大程度上已被 EXA 取代。大多数广泛使用的图形驱动程序已转换为 EXA(或 Intel 情况下的 UXA/SNA),但一些不太积极维护的驱动程序尚未发展到 XAA 之外。本月,Gaeton Nadon 提出了从构建中删除 -newport 和 -s3 驱动程序的补丁。其他次要驱动程序(如 -sis 和 -ark)收到了修复各种 ABI 破坏和构建问题的补丁。在未来几个月,我们可以预期看到更多这些次要驱动程序被更新或从 X.org 中删除。
在 XDC 上讨论 xserver 1.15 版本的发布时间时指出,没有太多的功能开发来保证近期发布。虽然树中存在许多错误修复,但最重要的错误修复已(或可能将)反向移植到 1.14。决定推迟 1.15,以便有更多时间包含功能工作,例如 DRI3。
Adam Jackson 正在着手重写 GLX,以消除大量冗余或过时的驱动程序代码。DRI1 的目标是完全消除。
Eric Anholt 一直在致力于清理 DRI 驱动程序。每个驱动程序过去都链接到 mesa 的副本,这非常浪费磁盘空间;Christopher James Halse Rogers 几年前引入了 dricore 来清理这个问题,从而节省了 30 MB 的磁盘空间;这在 2012 年成为强制性的。然而,这导致了 2-3% 的性能损失,并且一些内部 mesa 符号无意中变得公开。在 XDC 2013 上,Eric 提议重组软件包,以便所有驱动程序都与 Mesa 核心一起构建。这将恢复损失的性能,节省更多的磁盘空间,并将公共符号的数量减少到只有驱动程序入口点。剩余的问题是可解决的,XDC 参与者同意该概念和计划。Eric 本月在 Mesa 邮件列表中发布了三组大型补丁,以启动这项重构工作。
在 XDC 2013 上讨论了 nvFX,一种用于封装 NVIDIA 提供的绘图方法的高级语言/文件格式,以供 Piglit 可能使用。它不一定会使测试编写更容易,但可能是一种利用更广泛的图形社区的绘图算法智慧的方式,以提供额外的测试途径。
Mesa 项目在赶上对 OpenGL 规范的支持方面取得了巨大进展,并且截至 2012 年 8 月,成为首批发布新的 OpenGL ES 2.0 规范的实现之一。为了帮助发行版更轻松地发布 Mesa 版本,他们正在从 6 个月的发布周期转向 3 个月的发布周期。对于 Mesa 10.0,目标包括 OpenGL 3.3(仍然需要添加几何着色器)和一些与着色器相关的 API。计划的分支和发布日期分别为 11 月 1 日和 11 月 27 日。对于 Mesa 10.1,一个可能的目标是计算着色器,这似乎是一项非常受欢迎的功能。此版本的目标是在 1 月中旬进行分支,并在 2014 年 2 月中旬发布。除此之外,团队正在考虑对 OpenGL 4.x 规范的支持。
Mesa、NVIDIA 和 AMD 各自提供了 /usr/lib/libGL.so.1 的实现,历史上这些实现一直相互冲突,导致各种各样的错误。通常,这意味着您必须卸载并重新安装它才能在 FOSS 和专有驱动程序之间切换。这在混合图形中成为一个问题,在混合图形中,您希望在 GPU 之间动态切换。在 XDC 2013 上,NVIDIA 提出了一个概念,即引入新的供应商中立客户端 API 库,这些库包装对供应商特定库 libGLX_${VENDOR}.so.1 和 libEGL_${VENDOR}.so.1 的访问。libGL.so.1 将与供应商中立库一起提供,该库只是重新导出所有供应商 libGL.so.1 的所有符号,并使用 ELF DT_FILTER 来解析通过中立 libGLX.so.1 和 libOpenGL.so.1 提供的符号。该演讲广受欢迎,并达成协议,供应商中立库集将由 mesa 项目维护(尽管与 mesa 软件包本身分开)。
Waylandweston 1.2.2 版本带来了四个关键回归的修复。值得注意的是,它修复了单击标题栏时发生的崩溃,以及 evdev 设备清理期间发生的崩溃。对 xwm、就地触摸屏坐标校准、fbdev 编译中断等的其他修复。
wayland 和 weston 的 1.2.91 版本是即将于 9 月底发布的 1.3 版本的开发候选版本。主要功能包括
- 从客户端向 wl_pointer、wl_keyboard 和 wl_touch 的所有侦听器发送事件
- weston-launch 重写。这使 weston-launch 可以处理 VT 切换,从而提供更一致和可靠的错误恢复
计划在 1.3 之后包含的其他工作包括 weston_view、克隆模式、交换间隔 0 和嵌套缓冲区直通。
总的来说,本月的大部分开发工作继续以 Raspberry Pi 支持、汽车嵌入式支持 (IVI) 和键盘支持改进为目标。
Neil Roberts 提出了一组补丁,允许嵌套合成器在不进行位图复制的情况下使用子表面。子表面允许客户端应用程序将其窗口的某个区域委托给 Wayland 进行合成。例如,视频播放器可以使用它,视频播放器需要用于字幕和其他内容的叠加层,以便使用硬件加速功能进行合成和混合,以实现高性能。Neil 的更改通过避免显示期间的位图复制来提高性能。
在 XDC 上提到 Fedora 20 将包含 wayland/weston 作为可选组件,可以通过 gdm 选择。但这只是一个技术预览,对最终用户没有用处。一个完全正常运行的部署可能更适合 Fedora 21 / GNOME 3.12。
XDC 还看到了 Wayland 当前状态的演示,以及 Christ Halse Rogers 对 Canonical 的替代方案 Mir 的演示。后者的演示试图寻找更好地协作的方式,但普遍的感觉似乎是 Canonical 要求的贡献者许可协议以及实现方法的差异使得目前的协作过于困难。
Cairo本月没有新的 cairo 或 pixman 版本发布,因此最新版本分别为 0.12.16 和 0.30.2。
Krzysztof Kosiǹski 的缩小修复在开发树重新开放后合并到主干。缩小错误发生在 Inkscape 绘图中包含栅格图像然后缩小比例时;该错误会导致严重的像素化和图像退化。修复方法是使用 Pixman 0.30 和 cairo master 中提供的 Pixman 新的卷积功能。对于 Ubuntu 12.04 用户,我已经打包了这两个版本,以及 Inkscape 主干 PPA 中的 pixman 缩小修复,并为 cairo 编写了一个测试用例。还可以在那里找到针对这些软件包构建的 Inkscape 的 VCS 快照,可用于验证修复。此错误不影响 Inkscape 0.48,因为该版本早于切换到 Cairo 作为其后端渲染器,但它确实会影响除 Inkscape 之外的其他应用程序,这些应用程序在其基于 cairo 的图形绘图代码中使用缩放的位图。
在讨论 Cairo 中包含的功能时,Henry Song 提到了他一直在开发的 cairogles 分支。这包括添加高斯模糊、gl MSAA 合成器支持、阴影和插入阴影以及阴影缓存。上游希望重铸此 API,但尚未公布新的设计,因此进一步上游此分支的工作因其而受阻。
本月的大部分工作都集中在改进和清理测试套件和文档上。此外,Adrian Johnson 添加了 ps 和 pdf 后端的 mime 数据改进,包括对 JBIG2 数据的支持。Alexander Larsson 提交了一个补丁系列,用于添加对设备缩放的子表面的支持。
听起来 1.14.0 版本可能即将发布,尽管没有提到日期,所以可能在一个月或两个月内。Inkscape 等项目非常希望 pixman 缩小修复,这些项目希望允许缩小嵌入式位图,而不会出现当前看到的像素损坏。因此,希望该版本确实会很快发布。
最终想法在 XDC 2013 上宣布的几项重大重构有望解决重大缺陷。GLX 重写、消除 XAA 和 DRI1、将 DRI 驱动程序合并到 Mesa 核心将简化长期维护并删除不再得到良好支持的旧代码。DRI3000 和供应商中立 GL 库有望解决困扰 X.org 组合环境用户的基本架构问题。特别是 DRI3000 有望为桌面用户带来 Wayland 的一些关键性能优势,而无需脱离 X。
与此同时,Wayland 正在稳步发展,并且正在被其他项目移植,一些窗口管理器和至少一个发行版正在投入开发工作以支持它。Wayland 在汽车等小众领域也看到了显着的普及。
即将到来的活动- LibreGraphics Meeting:LGM2014 - 2014 年 4 月 2-5 日:德国莱比锡