Linux 图形驱动程序

作者:Robin Rowe

Linux 图形性能受到您选择的图形硬件、视频驱动程序和图形界面的影响。让我们来看看开源的 XFree86 服务器、商业的 Xi 服务器、ATI Fire GL 工作站显卡、NVIDIA GeForce3 Titanium 游戏显卡和 Wacom 平板电脑 Linux 驱动程序。

XFree86 是最知名的 X 服务器,因为几乎每个 Linux 发行版都包含它。这项技术为大多数 Linux 桌面用户提供了 X Window 系统的图形基础。“2002 年 1 月发布的 XFree86 4.2 版本包括抗锯齿字体、大量错误修复和许多新驱动程序,包括 RADEON 8500 和 Matrox G550”,XFree86 总裁兼发布经理 David Dawes 说。Dawes 是 Tungsten Graphics 的董事会成员兼高级软件架构师,这是一家由一些前 VA Linux 员工创立的初创公司,致力于驱动程序、OpenGL API 扩展和 DRI。

Linux Graphics Drivers

ATI Fire GL 8700

Luxi 可缩放字体,包括 TrueType 和 Type 1,是 4.2 版本的一部分。Bigelow & Holmes, Inc. 捐赠了这些以 Ikarus 数字格式创建的新字体,URW++ Design and Development GmbH 进行了 TrueType 和 Type 1 转换。

XFree86 4.2.0 提供了新的 X Rendering Extension 的部分实现。Render 使用大多数硬件提供的简单合成运算符,可以绘制抗锯齿文本和几何对象,以及执行半透明图像叠加。仍待实现的是几何图元和图像的仿射变换。只有三个应用程序已修改为在 4.2.0 中提供抗锯齿文本:xterm、xditview 和 x11perf。

4.2.0 的几项增强功能影响了 Darwin Mac OS X。在 Mac OS X 上,添加了一种新的无根模式,允许 X 客户端在 Aqua 桌面上显示窗口。XDarwin 现在支持 Xinerama,即窗口可以跨越两个显示器的功能。

当被问及他对下一个版本的愿望清单之首是什么时,Dawes 说这将是使 XFree86 更容易安装。“我们在这方面不断取得进展。对于 4.3,我计划亲自处理这个问题。”

商业 X 服务器,如 Metro-X 和 Xi Graphics,提供了 XFree86 的替代方案。惠普和 IBM 也生产专有的 X 服务器,与他们的工作站捆绑在一起。Metro-X 的制造商 Metro Link 已转向个人视频录像机电视机顶盒市场。“Linux Metro-X 不再开发,但仍然可用”,首席执行官 Morgan Von Esson 说。“25,000 美元的 PVR SDK 市场是我们现在的重点。” Metro Link 正在与 ATI 合作,作为 ATI 机顶盒 HDTV 参考平台的技术合作伙伴。Metro Link 为 XFree86 4.x 做出了重大贡献,捐赠了其运行时加载器。这使 XFree86 能够动态加载驱动程序,即使在不支持动态链接库的操作系统上也是如此。

Linux Graphics Drivers

PNY Verto NVIDIA GeForce3 Ti200

Xi Graphics 于 2001 年 11 月首次发布了其 Accelerated-X Summit X 服务器的 2.0 版本,此后一直在增加对更多显卡的支持——现在超过 30 种显卡和笔记本电脑。XiG Accelerated-X 服务器有桌面 (DX)、笔记本电脑 (LX)、多头 (MX) 和工作站 (WX) 型号。“我们产品的最大吸引力在于终身支持、性能和稳定性”,首席执行官 Dave Methvin 说。“我们支持自由软件的概念,我们将我们的 Solaris 笔记本电脑 PCMCIA 修复程序贡献为开源。但是,XFree86 无法提供我们商业产品所能提供的测试和支持。” XiG 首席技术官 Thomas Roell 在德国还是学生时,自己将原始 X Consortium 实现移植到 Intel x86 平台,并将其捐赠给了 MIT(从而后来捐赠给了 XFree86)。

Accelerated-X 的功能包括 Color Magic 颜色管理系统、用于双头显示的 DualView、用于高性能 YUV 显示的 Video Window、用于快门眼镜的立体 3-D 查看和用于节省笔记本电脑电量的 Power Throttle。Accelerated-X 可以使用 APCI 节流 CPU,甚至在不需要时关闭图形硬件的组件。Methvin 说,与 XFree86 相比,这可以为笔记本电脑增加两个小时的电池续航时间。

对于加速 OpenGL,XiG 使用名为 XDA 的更精简的 API,而不是 DRI。“DRI 太大且太复杂”,Methvin 说。“我们与 XFree86 在他们的设计上存在一些冲突。” 安装 Accelerated-X 对 XFree86 用户提出了一些挑战,因为这两个系统不喜欢共存。Accelerated-X 编写了他们自己优化的 OpenGL 实现,并建议首先卸载 Mesa 以避免安装冲突。运行 Accelerated-X 的 OpenGL 应用程序开发人员应下载 XiG OpenGL 开发工具包,以替换与 XFree86 兼容的 Mesa 开发人员包。

Linux Graphics Drivers

Wacom Cintiq(1,900 美元)结合了 15 英寸 LCD 屏幕和具有 512 级压力感应的无线笔。基于 Linux 的动画师可以直接在屏幕上绘制。

XiG 提供限时评估副本的免费下载。事实上,您必须下载评估副本才能购买它。在用购买密钥解锁之前,Accelerated-X 每次只能运行 25 分钟。(您可以根据需要多次重启它。)DX 型号的价格从 39 美元到 99 美元不等,LX 从 69 美元到 139 美元不等,MX 从 129 美元到 249 美元不等,WX 从 129 美元到 379 美元不等。我们安装了 99 美元的 DX RADEON Platinum 版本。

文档有点令人困惑,主要是因为我们对如何处理我们已经安装的 XFree86 和 Mesa 有疑问。

Accelerated-X 安装遵循以下步骤

  1. 禁用图形登录并退出当前正在运行的 X 服务器。

  2. su root.

  3. 删除或禁用 Mesa。

  4. 删除或禁用 agpgart 内核模块。

  5. 安装 Linux 内核源代码。

  6. 安装 X 服务模块 (XSVC) RPM。

  7. make xsvc.

  8. make xsvctest.

  9. 如有必要,使用适当的 MTRR、AGPGART 和 SMP 设置构建内核。

  10. 安装 Summit RPM。

  11. 运行 Xsetup 以在文本模式下配置显卡、显示器和鼠标。

  12. 运行 startx

  13. 再次运行 Xsetup 以在图形模式下配置高级选项。

我们遇到了一些额外的障碍,因为我们使用的是 Debian,而不是 Red Hat。我们使用 alien 将 RPM 文件转换为 deb 格式。我们的高性能 ASUS A7A266 主板不受支持,正如 xsvctest 显示的那样,这意味着我们没有获得 AGP 加速。可能由于转换后的 deb 文件,我们不得不手动添加 xsvc modutils 别名并创建 .xinitrc 和 .xserverrc 文件。

# vi /etc/modutils/aliases
.
.
alias char-major-10-175 agpgart
alias char-major-10-179 xsvc
.
.
tbird:/etc/modutils# update-modules
我们不得不杀死 gpm 并在 Xsetup 中选择 MS IntelliMouse 才能使我们的光学 Logitech MouseMan Wheel 鼠标工作。

XiG 计划继续将 Accelerated-X 作为其主要市场发展。“我们正在进入高端工作站显卡领域”,Methvin 说。“我们对新型高性能显卡的强大功能印象深刻。我们刚刚发布了 3DLabs Wildcat II 5110 的驱动程序。” XiG OpenGL 支持正在从 1.2.1 版升级到 1.3 版。

XiG 不支持 NVIDIA 显卡。“我们希望支持 NVIDIA 显卡”,Methvin 说。“但是,NVIDIA 不会提供规格。我们不得不满足于为竞争对手 ATI 编写更快的驱动程序。” Methvin 对 X Window 系统的最大抱怨是要支持的桌面配置数量。“GNOME 以某种方式与 XFree86 绑定,这往往会破坏其他 X 服务器,而且桌面窗口管理器太多了。我认为没有一个标准的桌面正在阻碍像 Adobe 这样的应用程序开发人员支持 Linux。”

显卡制造商 ATI 于 2001 年 4 月收购了 Fire GL Graphics 及其工作站显卡系列。工作站显卡(如 Fire GL)旨在用于 3-D 动画师和工程师,而不是消费者。换句话说,您可能会在高性能游戏显卡(如 ATI RADEON)上玩 Quake,但游戏设计师在为游戏或电影中的特殊效果创建 3-D 世界时会使用性能更高的 Fire GL。这些显卡最大的区别在于 OpenGL 加速性能。其他 pro-Fire GL 优势包括多个窗口中的高帧率、双缓冲叠加、双显示器支持,以及更高的稳定性、可靠性和技术支持。

ATI 保留了德国 Fire GL Linux 驱动程序团队的完整性。Fire GL 驱动程序是闭源驱动程序,并且可能永远都是。“将闭源驱动程序开源存在知识产权和竞争问题”,工作站主管 Ed Huang 说。“我们相信我们拥有适用于 Linux 的最快 OpenGL 实现,并且不想向竞争对手展示如何实现。”

Linux Graphics Drivers

XFree86 和 MacGimp 与打开的 Mac OS X Finder 窗口,显示两个不同的窗口系统协同工作。

Fire GL 2 和 Fire GL 4 使用相同的闭源驱动程序。ATI 对 RADEON 采取了不同的策略。它是一个开源驱动程序。高端 Fire GL 4 的价格约为 1,500 美元(在 buy.com),而价格较低的 Fire GL 的价格约为 725 美元(在 cdw.com)。两款新的 Fire GL 型号正在取代这些型号。Fire GL 8800 将是自收购以来第一款 ATI 开发的 Fire GL 显卡,也是第一款基于 RADEON 芯片组的显卡。这款 128MB 显卡在大多数应用程序中的性能比 Fire GL 4 提高约 50%,预计价格低于 900 美元。Fire GL 8700 基于 RADEON 8800LE 芯片,配备 64MB,取代了 Fire GL 2。它的性能比 GL 2 提高约 50%,价格应低于 400 美元。

所有 Fire GL 显卡都使用相同的 Linux 驱动程序。Fire GL 驱动程序(目前适用于带有 libc 6.2 的 XFree86 4.1.0)可在 ATI 网站上以 .tgz 或 RPM 格式获得,大小约为 5.5MB。

图形芯片制造商 NVIDIA 的新型高性能游戏显卡 GeForce3 Titanium 在 Compaq、戴尔、惠普和 IBM PC 中提供。他们的显卡也是所有 Apple 台式机和 Microsoft XBox 的标准配置。NVIDIA 的表现出色,其股票是 2001 年标准普尔 500 指数中表现最好的股票。GeForce3 型号包括 Ti 200(约 160 美元)和性能更高的 Ti 500(约 300 美元)。这些型号具有 GPU 上的快速高分辨率抗锯齿 (HRAA Quincunx)、DVI 输出和电视 s-video 输出。对于内容创作者,NVIDIA 提供性能更高的 Quadro2-Pro 显卡(约 615 美元)。

对于 Linux 用户来说,NVIDIA 显卡最有趣的方面可能是其统一的驱动程序架构。“我们对 Linux 和 Windows 的所有显卡都使用相同的统一驱动程序代码”,软件副总裁 Dwight Diercks 说。“我们的 Linux 驱动程序在新板卡发布时就已准备就绪,就像我们的 Windows 驱动程序一样。我们在新图形芯片制造后的 60 天内发布 Windows 和 Linux 驱动程序。”

OpenGL 1.3 已在所有平台上完全实现并交付。“我们的统一驱动程序架构为我们提供了跨所有显卡的单个驱动程序二进制文件”,OpenGL 和 Linux 工作站主管 Nick Triantos 说。“当我们进行驱动程序性能优化时,它适用于我们所有产品。其他支持多个驱动程序的公司无法保持其驱动程序的最新状态。”

Diercks 说 NVIDIA 尽可能多地重用驱动程序代码。“主要的内部差异是 Linux 的 OpenGL GLX 层和 Windows 的 Wiggle 层。所有优化、新功能和扩展都无需太多工作即可应用于 Linux 端。” Nvdriver 是 Linux 内核模式驱动程序。Windows 驱动程序是 VXD 微端口驱动程序。

Linux Nvdriver 是闭源驱动程序。还有一个作为 XFree86 一部分提供的开源 NVIDIA 驱动程序。开源驱动程序具有重要的 2-D 功能(加速视频、DVD 播放和显示器检测),但当 XFree86 架构在 4.x 中更改时,OpenGL 3-D 加速丢失了。

在架构师 Mark Voikavich 的领导下,NVIDIA 有一个由十名工程师组成的团队支持 Linux。虽然微软的专有 DirectX 协议显然不是 Linux 驱动程序的一部分,但所有其他驱动程序功能都在 Linux 中。“Linux 具有完整的 TwinView 双头支持”,Diercks 说。“Linux 笔记本电脑具有多头技术,用于演示文稿的显示器输出。用户可以在屏幕之间拖动窗口。” Linux 驱动程序实际上比 Windows 驱动程序更精简,因为它不必复制 OpenGL 和 DirectX 中提供的功能。根据配置,Linux 驱动程序的性能可能比 Windows 版本更快。

NVIDIA 与 XFree86 项目密切合作。“未来,我们正在考虑更多支持笔记本电脑功能,例如在显示器之间动态移动窗口的热键”,Triantos 说。“X 中没有界面可以使窗口仅出现在一个屏幕上。” X 中缺少的另一个功能是捕获加速窗口的屏幕截图的机制。在 Windows 中,有一个到驱动程序的回调挂钩,但在 Linux 中捕获加速屏幕需要应用程序的帮助,例如在 Quake 中按 F11 键进行 OpenGL glReadPixels 屏幕截图。由于加速窗口会在桌面上打一个孔进行写入,因此捕获它们而不是纯黑色窗口需要额外的努力。

NVIDIA 最近发布了其 Personal Cinema 显卡,以与 ATI AIW RADEON 竞争。“Personal Cinema 提供视频编辑和视频捕获,但这些功能在 Linux 驱动程序中不可用”,Diercks 说。“我们很感兴趣,但不确定 Linux 是否有足够的需求。” 另一方面,ATI AIW RADEON 有一个新的 Video4Linux 驱动程序用于视频捕获。

NVIDIA 在其芯片开发中广泛使用 Linux。“我们在一个 1,500 台服务器的计算场中使用 Red Hat 6.2 Linux”,Diercks 说。“我们的工程师使用它来测试我们的芯片设计的进展。”

Linux Graphics Drivers

XiG Xsetup 配置工具可以使用颜色校正向导快速调整色温。

并非所有与图形相关的 Linux 驱动程序都用于视频。Wacom 平板电脑在 GIMP 用户和在 Linux 工作站上工作的电影动画师中很受欢迎。XFree86 开发人员 Frederic Lepied 负责 Wacom Linux 驱动程序。“在我之前的工作中,我们需要通过平板电脑访问 Solaris X 服务器,Wacom 网站提供了 Wacom IV 设备的协议”,Lepied 说。“后来我将我的 Solaris Wacom 驱动程序移植到 Linux XFree86。使 XInput 扩展在 XFree86 中工作是我成为 XFree86 开发人员的原因。”

Linux Wacom 驱动程序的开发始于 1995 年。Lepied 是唯一的开发人员,但他收到了许多人的贡献。开发工作是持续不断的,以支持新型号。Lepied 的工作得到了 Wacom 的支持,但由他的雇主 MandrakeSoft 赞助。Lepied 是 Mandrake Linux 发行版的团队经理和开发人员。开源 Linux Wacom 驱动程序支持 Wacom IV、Wacom V 和 USB 协议。

资源

电子邮件:Robin.Rowe@MovieEditor.com

Robin Rowe (robin.rowe@movieeditor.com) 是 MovieEditor.com 的合伙人,这是一家创建互联网和广播视频技术应用的公司。他曾为 Dr. Dobb's JournalC++ ReportC/C++ Users JournalData Based Advisor 撰稿。

加载 Disqus 评论