XFree86 4.1.0 和 ATI RADEON
最新版本的 XFree86 显著提高了 Linux 图形性能,使 Linux 成为可行的工作站操作系统。包括梦工厂和皮克斯在内的主要电影制片厂正在采用 Linux 作为其标准的电影制作工作站。
XFree86 是 X 窗口系统的一个流行的实现,这项技术于 1984 年在麻省理工学院作为雅典娜计划的一部分开发。麻省理工学院的目标是将他们现有的来自不同制造商的不兼容工作站组合构建成图形工作站网络。最初,X 主要在麻省理工学院和 DEC 使用,大部分开发工作也发生在那里,但在 1986 年它被商业发布。最终,麻省理工学院将 X 移交给 X 联盟,后者后来并入 Open Group。1999 年,Open Group 分拆出 X.org。X.org 估计有超过 3000 万人正在使用 X,并且由于 Linux 和 XFree86,这个数字正在迅速增长。
1992 年,在 X 停滞了十年之后,成为 XFree86 的项目成立了,目标是提供 X 的免费实现。X 的重要新功能(字体抗锯齿、合成和 DRI)归功于 XFree86。作为一个志愿者组织,任何人都可以加入 XFree86,并直接访问 CVS 中的 XFree86 代码和文档。最初专注于 Intel x86,今天的 XFree86 的目标是成为每个可用平台上最好的窗口系统。它与 Linux、BSD、Mac OS X、Solaris 和 OS/2 一起运行。支持的 CPU 包括 x86、Alpha、PowerPC 和 SPARC,MIPS 正在开发中。
2000 年 3 月,发布了重新设计的 XFree86。4.0 版本增加了更好的图形加速以及 X-Video 和使用 Xinerama 的多头支持等功能。X-Video 提供了对 RGB 颜色空间替代方案的支持,例如电视和电影中使用的 YUV。特别是动画师,经常需要一次处理多个监视器。普通的多头配置支持将窗口放置在多个监视器上。Xinerama 使一个窗口能够同时跨越多个物理屏幕。
通过添加直接渲染基础设施 (DRI) 和 GLX,XFree86 3-D 图形性能得到显著提高。OpenGL 是一种平台无关的场景描述语言,非常适合动画,并且与硬件紧密相连。GLX 是将驱动程序级 OpenGL 图形语言与 X 连接起来的窗口事件代码。GLX 和 OpenGL 都是由 SGI 开发的。DRI 是一种管道,它绕过 X 服务器中的低效率,将内核、X 服务器、OpenGL 和图形驱动程序直接绑定在一起。所有现代高性能图形卡现在都为 Linux 提供加速驱动程序,但值得注意的是 3D Labs,它正在开发驱动程序。
VESA 显示数据通道 (DDC) 是配置 XFree86 时特别方便的功能,它使 XFree86 能够查询现代监视器以获取其支持的屏幕分辨率和刷新率。XFree86 4.x 集成了 read-edid 实用程序,以自动确定正确的监视器模式行设置。
2001 年 6 月,发布了 XFree86 4.1.0。除了错误修复之外,此版本还有更多受支持的驱动程序;我们特别感兴趣的是 ATI RADEON。所有 RADEON 卡都具有出色的图形性能,但 RADEON 的 All-In-Wonder 版本增加了内置电视调谐器的功能。ATI 曾经在开源开发者中声誉不佳,但现在已经从最差变成最好之一。ATI 赞助了 RADEON 开源驱动程序的开发。
Daryll Straus 在 Digital Domain 为电影 泰坦尼克号 的渲染农场工作时,利用业余时间构建了第一个加速 Linux 3-D 驱动程序(用于 3dfx 硬件)。那是第一部主要电影,其特效主要使用 Linux 渲染。(请参阅 1998 年 2 月的《Linux Journal》杂志中 Daryll Strauss 和 Wook 的文章“Linux 帮助 泰坦尼克号 栩栩如生”。)从那时起,Strauss 继续构建 Linux 图形驱动程序,担任 Precision Insight(现在是 VA Linux 的一部分)多媒体主管。Precision Insight 由 ATI、Intel、Matrox 和 3dfx 资助,以构建与 DRI 兼容的 Linux 驱动程序。Strauss 说
我认为开源是未来的方向。在 18 个月内,我们构建了十个驱动程序:3dfx Voodoo 3、4 和 5;ATI Rage 128、128 Pro 和 RADEON;Matrox G400;Intel i810 和 i815;以及另一个尚未宣布的驱动程序。创建通用代码库确实很有帮助。在查看 NDA 下的专有驱动程序的源代码和文档时,我们发现供应商的代码和硬件具有许多共同的特性。
他的团队为 RADEON 做了有限的实现,没有 3-D 变换和光照的加速。“关于 RADEON 令人恼火的是,我们创建了一个光栅化驱动程序,有效地将 RADEON 变成了一个快速的 Rage 128”,Strauss 说。“一旦你运行 Maya,你就会注意到你没有 3-D 性能。” Maya,上个月在这里评测过,是电影动画师常用的 3-D 建模应用程序。

更多关于 Open Universe 的图形
XFree86 可以通过三种方式安装:作为软件包、作为二进制文件或从源代码安装。打包版本尚不可用,因此我们无法遵循该路线。我们尝试从二进制文件安装,但遇到了问题。Xinstall.sh 安装脚本不喜欢安装目录名称中的空格,但更重要的是,我们只是无法使其正常工作。从源代码构建似乎是我们唯一的选择,这是一个有趣但具有挑战性的过程。4.1.0 版本依赖于 2.4 内核。我们不仅升级到内核 2.4.7,还升级到 Debian Sid。如果您想阅读该过程的详细信息,包括我们沿途克服的一些意外问题,请阅读本文的在线版本,网址为 www.linuxjournal.com。
当 XFree86 4.1.0 变得广泛打包时,安装它似乎不会那么具有挑战性,但是从源代码构建它教会了我们很多关于 XFree86 如何组装的知识。它的庞大规模和构建过程的复杂性超出了人们的预期。Vladimir Dergachev 定期在 XFree86 Xpert 列表上帮助 RADEON 用户,他在帮助我们使其工作方面功不可没。他是积极致力于 RADEON 驱动程序的志愿者之一。
新的 DRI 架构与加速驱动程序(开源和闭源版本)使 Linux 成为一个更加强大的图形平台。ATI、HP、NVIDIA、3D Labs 和其他公司正在积极开发闭源驱动程序。没有发生的是开源驱动程序的进一步开发,例如此处描述的 RADEON 驱动程序。Precision Insight 已经转向其他项目,目前没有人资助开源驱动程序甚至 XFree86 本身的增强。
志愿者编写与 DRI 兼容的驱动程序的学习曲线很陡峭,尤其是在缺乏文档的情况下。随着 4.1.0 版本的发布,XFree86 中的更改已经稳定下来。现在是编写好的文档的时候了,这将使未来的程序员能够构建和增强加速驱动程序。如果有人愿意提供帮助,请给我发消息。
电子邮件:Robin.Rowe@MovieEditor.com
Robin Rowe 是 MovieEditor.com 的合伙人,这是一家创建互联网和广播视频应用的技术公司。他曾为 Dr. Dobb's Journal、C++ Report、C/C++ Users Journal 和 Data Based Advisor 撰稿。您可以通过电子邮件 robin.rowe@movieeditor.com 与他联系。