9. 杂项问题

9.1. 硬件加速问题

XFree86 4.x 为视频提供了一种更加集中和自包含的方法。 像内核模块用于非 root 用户访问显卡这样的奇怪问题,谢天谢地,已经消失了。

9.1.1. 硬件加速完全不工作

如果你得到像 1 fps 这样的帧率,那么你的系统没有使用硬件 3D 加速。可能存在以下两种情况之一。

  1. 你的 3D 系统配置错误(可能性较大)

  2. 游戏 X 配置错误(可能性较小)

第一步是弄清楚是哪种情况。

  1. 如果你使用的是 X 4.0 (X 3.* 用户请进行步骤 2),查看以下命令的输出X -probeonly。你将会看到

    (II) XXXXXX: direct rendering enabled

    或者

    (II) XXXXXX: direct rendering disabled

    其中 XXXXXXX 取决于你使用的显卡。 如果直接渲染被禁用,那么你的 X 配置肯定有问题。 你的游戏没有问题。 你需要弄清楚为什么 DRI 被禁用。 此时你最重要的工具是“DRI 用户指南”。 这是一篇写得非常好的文档,它提供了关于如何在你的机器上正确设置 DRI 的逐步信息。 副本保存在 http://www.xfree86.org/4.0/DRI.html

    请注意,如果你通过了这个测试,你的系统就能够进行直接渲染。 你的库仍然可能存在问题。 因此,请进行步骤 2。

  2. 有一个名为 glxgears 的程序,它随 “mesademos” 软件包一起提供。 你可以使用 Debian 获取 mesademos ( apt-get install mesademos) 或者你可以在 http://www.rpmfind.net 上搜索 rpm 包。 你也可以从 mesa 首页下载并自行编译源代码。

    运行 glxgears 将显示一些齿轮在转动。 运行 glxgears 的 xterm 终端会显示 “X frames in Y seconds = X/Y FPS”。 你可以将你的系统与下面的基准测试列表进行比较。

        CPU TYPE     VIDEO CARD     X VERSION    AVERAGE FPS
    						

    自行编译 Mesa 和 DRI 模块可以使你的 FPS 提高 15 FPS; 这是一个相当大的性能提升! 因此,如果你的数字比同等配置的机器慢大约 20 FPS,那么很可能 glxgears 正在回退到软件渲染。 换句话说,你的显卡没有进行 3D 图形加速。

    比 FPS 更重要的是,在小窗口和大窗口下都保持恒定的 FPS。 如果硬件加速工作正常,glxgears 的 FPS 应该几乎与窗口大小无关。 如果不是这样,那么你就没有获得硬件加速。

9.2. 硬件加速仅对 root 用户有效

9.2.1. XFree86 4.x

如果以下行不在你的 XF86Config-4 文件中,请将它们放入

    Section "DRI"
        Mode 0666
    EndSection
					

这允许所有非 root 用户使用 DRI。 对于有疑虑的用户,可以将 DRI 限制为仅限少数非 root 用户。 请参阅 DRI 用户指南。

9.2.2. XFree86 3.x

9.2.2.1. Voodoo 显卡

Voodoo 显卡硬件加速仅在 16bpp 颜色深度下进行,并且当在其他颜色深度下启动 X 时会静默失败。

此外,Voodoo 显卡需要3dfx.o内核模块以及一个/dev/3dfx设备文件(主设备号 107,次设备号 0),用于非 root 用户的硬件加速。 在 XFree86 4.x 下,模块和设备文件都不再使用。