硬件3D加速指南

硬件3D加速指南

内容
  •  
  •  
  •  
  •  
  •  
  • 1.  解释

    什么是硬件3D加速,为什么我需要它?

    使用硬件3D加速,三维渲染将会使用显卡上的图形处理器来进行,而不会占据宝贵的CPU资源来绘制3D图像。它也被称作“硬件加速”而不是“软件加速”,因为如果没有这个3D加速,你的CPU将只能使用Mesa软件渲染库来绘制所有的3D图像,这会占用相当多的处理器资源。虽然Xorg一般会支持2D硬件加速,它经常缺少硬件3D加速。三维硬件加速在游戏、3D CAD和建模等需要渲染3D对象的场合下非常有价值。

    我怎样获得硬件3D加速?

    在很多情况下,二进制驱动和开源驱动都存在。推荐使用开源驱动,因为我们使用的是Linux并且开源是它的本质特征之一。有些时候,二进制驱动是唯一的选择,特别是当你的显卡很新的时候,这种情况下开源驱动的支持往往会稍有滞后。二进制驱动有针对nVidia显卡的x11-drivers/nvidia-drivers以及针对AMD/ATI显卡的x11-drivers/ati-drivers

    什么是DRI?

    Direct Rendering Infrastructure——直接渲染架构,也称DRI,是一个允许在安全和高效的方式下直接访问显卡硬件的架构。它包括对X服务器的改动,以及对几个客户端库和内核的改动。DRI的第一个重要应用是创建快速的OpenGL实现。

    什么是DRM,它和常规Xorg有何联系?

    DRM(Direct Rendering Manager——直接渲染管理器)是Xorg的一个改进,它通过增加直接渲染所必要的内核模块来为显卡增加3D加速功能。

    目的

    本指南是给那些在Xorg里不能搞定直接渲染的人准备的。DRM对于下面这些驱动工作正常:

    • 3dfx
    • intel
    • matrox
    • nouveau
    • rage128
    • radeon
    • mach64
    • sis300
    • via

    请看DRI主页以获取更多信息和文档。

    2.  安装Xorg和配置内核

    安装Xorg

    请阅读我们的Xorg配置指南来配置Xorg并使之运行起来。

    配置你的内核

    检测你的芯片组并只启用该芯片组

    代码 2.1: 检查你的AGP芯片组

    # emerge pciutils; lspci | grep AGP
    # 00:01.0 PCI bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)
    (因为硬件的不同,你的输出和上面的可能不一样。)
    

    如果你的芯片组不被内核所支持,尝试给内核加上agp=try_unsupported参数可能能够成功。这将会使用Intel的一般性函数来充当AGP支持。要添加这个参数,请修改你的引导程序配置文件!

    大多数,如果不是全部,内核都应该有这些选项。这里配置时使用的是一个标准的gentoo-sources内核。

    代码 2.2: 配置内核

    # ls -l /usr/src/linux 
    lrwxrwxrwx 1 root root 22 2007-02-14 20:12 /usr/src/linux -> linux-2.6.18-gentoo-r4
    (确保/usr/src/linux连接指向你现在的内核。)
    # cd /usr/src/linux
    # make menuconfig
    

    代码 2.3: make menuconfig选项

    Processor type and features --->
    <*> MTRR (Memory Type Range Register) support
    Device drivers --->
       Graphic support --->
       <M> /dev/agpgart (AGP Support) --->
       (agpgart选项在64位内核里不存在;只需要选择你的芯片组支持即可。)
       <M> Intel 440LX/BX/GX, I8xx and E7x05 support
    (启用你的芯片组而不要照抄上面的例子。)
       <M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
         <M> (从列表里选择你的显卡)
    

    编译和安装内核

    代码 2.4: 编译和安装内核

    # make && make modules_install
    

    不要忘记设置grub.conf或者lilo.conf并且执行/sbin/lilo如果你使用LILO的话。

    把你的用户加入到video用户组里

    下面,把你的用户加入到video用户组,就像手册里提到的:

    代码 2.5: 把一个用户加入到video用户组

    # gpasswd -a username video
    

    3.  配置直接渲染

    配置Xorg

    一般把你的用户加入video用户组就可以启用直接渲染了。不过你可能还需要在 /etc/X11/xorg.conf.d/路径下创建一个文件。你可以随便取个名字,只要是以.conf为后缀即可。 打开你心爱的文本编辑器然后创建像下面这样的一个文件:

    代码 3.1: /etc/X11/xorg.conf.d/10-dri.conf

    Section "Device"
      Driver "radeon"
      (用你的驱动的名字替换radeon)
    EndSection
    Section "dri"
      Mode 0666
    EndSection
    

    modules.autoload.d的改动

    你需要把你的显卡所用的模块名字加入/etc/modules.autoload.d/kernel-2.6来确保系统启动时这个模块能被自动加载。

    代码 3.2: 编辑/etc/modules.autoload.d/kernel-2.6

    (改成你的模块的名字)
    intel-agp
    

    注意: 如果你把agpgart编译成了模块,你也需要把它加入/etc/modules.autoload.d/kernel-2.6

    4.  测试3D加速

    重启使用新内核

    重启你的电脑使用你的新内核并以普通用户登录。是时候看看你的直接渲染是否已经启用而且它究竟有多厉害了。glxinfoglxgearsmesa-progs包的一部分,所以运行这两个命令前要确保它们已经被安装。

    代码 4.1: 测试渲染

    $ startx
    (不需要加载你的驱动的模块或者agpgart,即使你把它们编译成了模块。)
    (它们会被自动加载。)
    $ glxinfo | grep rendering
    direct rendering: Yes
    (如果这里显示的是“No”,那么你没有3D加速。)
    $ glxgears
    (用默认大小的窗口测试你的FPS。这个数字应该比配置DRM前高出了许多。尽量在CPU空闲的时候测试。)
    

    注意: FPS可能会受你的屏幕的刷新率所限,所以如果glxgears显示FPS只有70-100时不要忘了这一点。games-fps/ut2004-demo或者其他3D游戏是更好的测试工具,它们可以给你真实世界的表现结果。

    获取直接渲染的最高性能

    如果你想要设定更多的特性,以获取更高的性能和其他原因,请查看DRI网页上的特性矩阵或者Sourceforge上的特性列表

    5.  疑难解答

    不行啊。我无法启用直接渲染,而且我不知道为什么。

    尝试在启动X服务器之前modprobe radeon(把radeon替换为你的驱动的名字)。再尝试把agpgart编译进内核,而不是编译成一个模块。

    当我startx时,我得到了这个错误信息:"[drm] failed to load kernel module agpgart"

    这是因为你把agpgart编译进了内核,而不是编译成模块。如果运行起来没有问题,请忽略这个提示。

    我有一个Radeon显卡,我想要TV-Out。

    原来由GATOS项目开发的驱动已经被合并到Xorg里了。要启用TV-Out你不需要做什么事情;x11-drivers/xf86-video-ati将会正常支持这个功能。

    不行啊。我的显卡太新了,根本不受支持。

    请试试二进制驱动。AMD显卡,请使用ati-drivers,这里有个连接http://support.amd.com/us/gpudownload/Pages/index.aspx。如果这些也不支持,就用fbdev。虽然它比较慢,但是它可以运行的起来。

    我有一个PCI显卡,但是搞不定。帮帮忙!

    /etc/X11/xorg.conf.d/路径下创建一个文件,随便起个以.conf结尾的名字。然后把下面的内容放进去:

    代码 5.1: /etc/X11/xorg.conf.d/10-pcimode.conf

    Section "Device"
    Option "ForcePCIMode" "True"
    EndSection
    

    6.  参考

    1. http://forums.gentoo.org/viewtopic.php?t=46681
    2. http://forums.gentoo.org/viewtopic.php?t=29264
    3. http://dri.freedesktop.org/
    4. http://www.retinalburn.net/linux/dri_status.html

    回馈

    如果有任何问题和建议,请发email给Donnie Berkholz

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值