硬件3D加速指南(转)
内容简介:本指南描述了如何在Gentoo Linux的XFree86中使用XFree-DRM以获得3D加速。
1. 前言
什么是硬件3D加速?我为什么需要使用它?
硬件3D加速可以允许你使用显示卡上的图形处理器来处理三维图形渲染而不需要占用宝贵的CPU资源。作为“软件加速”的反面,它也被称作“硬件加速”。在没有硬件3D加速的情况下,CPU自身会被强制使用 Mesa软件渲染函数库来进行贴图处理,这会占用相当多的CPU资源。虽然XFree86一般都支持2D硬件加速,但它却常常缺乏硬件3D加速功能。而对于某些需要进行3D渲染的工作(比如3D CAD和三维建模),三维硬件加速将会显得非常重要。
我如何才能使用硬件3D加速?
在大多数情况下,你可以选择二进制编码驱动程序或者开放源代码驱动程序。由于我们使用的操作系统是Linux 并且开放源代码是Linux的基本准则,因此我们推荐你使用开放源代码的驱动程序。但有时二进制编码驱动程序也许是你唯一的选择??比如对于nVidia显示卡。二进制编码驱动程序包含了适用于nVidia显示卡的 media-video/nvidia-kernel以及media-video/nvidia-glx、适用于Matrox显示卡的media-video/mgavideo,以及适用于ATI显示卡的media-video/ati-drivers。而开放源代码的驱动程序则包含了适用于 KyroII的media-video/kyro-kernel以及适用于ATI显示卡的media-video/ati-gatos,后者为 ATI显示卡提供了更为全面的视频功能的支持。
什么是 DRI?
Direct Rendering Infrastructure (dri.sourceforge.net),也就是所说的DRI,是一个允许应用程序以高效安全的方式直接访问图形处理硬件的框架控制系统。它包含了对X 服务器、一些客户端函数库以及系统内核的某些修改。DRI最主要的用处是实现OpenGL的快速高效执行。
什么是XFree-DRM?它是如何与普通的XFree86进行关联的?
XFree-DRM是一套为XFree86提供增强性能的组件,它通过为直接渲染添加必要的内核模块来为你的显示卡提供3D加速。
目的
本指南是为那些无法在XFree中使用DRI的用户准备的。XFree-DRM适用于3dfx, gamma, i8x0, matrox, rage128, radeon, mach64(从xfree-drm-4.3.0-r7开始支持)以及 sis300系列驱动程序。由于2.4系统内核的直接渲染管理器(DRM)不再支持XFree 4.3,因此你需要安装xfree-drm软件包,不过,2.6系统内核可以支持XFree 4.3。但是Gentoo的 XFree-DRM软件包尚无法在2.6系统内核中工作。请参看DRI 主页以获得更多信息。
意见反馈
如果你有任何建议或者疑问,请将E-mail发送到这里: Donnie Berkholz.
2. 安装XFree86并配置你的系统内核
安装 XFree86
代码 2.1: 安装 XFree86
# emerge x11-base/xfree
配置你的系统内核
检测你的芯片组并且打开相应的内核支持。
代码 2.2: 检查你所使用的AGP芯片组
# emerge pciutils; lspci | grep AGP
# 00:01.0 PCI bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)// 以上的输出结果会因为不同的硬件而有所差异。
在大多数情况下,系统内核应该含有以下的选项。以下是在使用gentoo-sources-2.4.20-r5的情况下进行配置的:
代码 2.3: 配置内核
# ls -l /usr/src/linux
lrwxrwxrwx 1 root root 22 May 29 18:20 /usr/src/linux -> linux-2.4.20-gentoo-r5
// 请确保 /usr/src/linux 已经指向当前内核.
# cd /usr/src/linux
# make menuconfig
代码 2.4: make menuconfig 选项
Processor type and features --->
MTRR (Memory Type Range Register) support
Character devices --->
/dev/agpgart (AGP Support)
[*] Intel 440LX/BX/GX and I815/I820/I830M/I830MP/I840/I845/I850/I860 support
// 请为你自己所使用的芯片组打开相应的内核支持
[ ] Direct Rendering Manager (XFree86 DRI support)
请确保Direct Rendering Manager (DRM,直接渲染管理器)已经处于关闭状态。 XFree-DRM软件包将会提供它所附带的直接渲染管理器。2.4版本的系统内核可以支持 XFree 4.2。
编译并安装你的系统内核
代码 2.5: 编译并安装你的系统内核
# make dep && make clean bzImage modules modules_install
# mount /boot
# cp arch/i386/boot/bzImage /boot
如果你想让你的新内核使用一个bzImage以外的其他名称,请将它复制到/boot/yourname 。当然,不要忘记修改grub.conf和lilo.conf,如果你使用的是LILO,你还需要运行/sbin/lilo 。
3. 安装 XFree-DRM 并配置直接渲染
安装 XFree-DRM
代码 3.1: 安装 XFree-DRM
# ACCEPT_KEYWORDS="~x86" emerge xfree-drm
配置 XF86Config
用你喜欢的编辑器打开/etc/X11/XF86Config,然后编辑这个文件以让它启用DRI和GLX。
代码 3.2: XF86Config
...
Section "Module"
Load "dri"
Load "glx"
...
EndSection
...
Section "Device"
Driver "radeon"
...
EndSection
...
Section "dri"
Mode 0666
EndSection
如果你正在使用其它显示卡,请将"radeon"替换为你自己的驱动程序名称。
4. 测试3D加速
用你的新内核启动系统
用你的新内核启动系统。现在你可以看看直接渲染是否已经开启并且体验它为你的系统所带来的改善。
代码 4.1: 测试渲染功能
# startx// 如果agpgart已经被编译为模块,你则不必为你的驱动程序或者agpgart加载模块,// 它们会被自动加载。
# glxinfo | grep rendering
direct rendering: Yes
// 如果你得到的提示是"No," 说明你的3D加速没有被打开或者你的显示卡不支持3D加速.
# glxgears// 以默认大小测试你的FPS,你所得到的数字// 应该会比在安装xfree-drm之前有显著提高,我们建议你在CPU足够空闲的情况下做这项测试。
5. 使用CVS源代码
警告: 如果一切都已经正常工作的话,请不要轻易尝试。
注释: CVS源代码程序是一直在更新和变化的,因此也许你的配置不会和下面的讲解完全一样。
你需要CVS源代码版本吗?
首先你得弄明白xfree-drm是否可以正常工作,如果它确实有问题并且不是由于你的配置错误而引起的话(你可以检查Log文件来进行验证),你也许可以考虑一下CVS源代码版本了。但是如果你不想编译完整的CVS,你也可以找到许多daily driver snapshots(每日驱动程序更新快照)。
CVS源代码版本支持你的显示卡吗?
浏览一下DRI 已经支持的显示卡列表,看看CVS版本的程序是否可以支持你的显示卡,即便你没有找到,你也可以尝试一个与你的显示卡类似型号的CVS程序。
警告: “Linux 2.4内核不支持AGP 8X,所以我不得不去寻找一个backport。现在这个backport可以正常工作了… 但是它修补得并不是那样完美,而且它需要2.4.21的系统内核(使用vanilla成功运行,直接通过tarball 方式编译)。首先从kernel.org上下载2.4.20-2.4.21的补丁,然后下载AGP 8X的补丁??你可以从邮件列表上的某个地方找到它。在打补丁的过程中会遇到一个有关pci_ids.h文件的小问题,但是如果你打开这个文件并且看一下 reject list,这个问题便可以很容易的解决。现在有关AGP 8X的问题确实得到修复了,我可以使用 xfree-drm 在1600x1200分辨率下进行工作(但是由于缺少DGA,因此速度有点慢)。(来自#gentoo频道上的SanityInAnarchy)
重要: 这个补丁需要一点技巧才能安装成功,你可以在这里 找到下载的地方。如果你可以在BIOS中关掉8X AGP并且打开AGP 4X的话,也许你就可以不必使用这个补丁了。
安装CVS源代码版本程序
按照本文档完成到“编译并安装你的系统内核”这一节,然后从DRI 编译指南 的第6步做到第8.3步即可。
匿名CVS下载
为你的CVS文件创建一个存放目录:
代码 5.1: 为CVS创建一个目录
# cd ~
# mkdir DRI-CVS
查看CVS源代码程序更新:
代码 5.2: 查看CVS源代码程序更新
# cd ~/DRI-CVS
# cvs -d:pserver:anonymous@cvs.dri.sourceforge.net:/cvsroot/dri login// (当提示你输入密码时请按ENTER键)
# cvs -z3 -d:pserver:anonymous@cvs.dri.sourceforge.net:/cvsroot/dri co xc// -z3参数允许你在下载时启用压缩以节省时间
更新你的CVS源代码
也许以后你想要更新你的DRI源代码本地副本以获得最新的CVS版本,这时你可以使用以下的步骤:
代码 5.3: 更新本地副本
# cd ~/DRI-CVS
# cvs -z3 update -dA xc// -d参数允许自动创建子目录。// -A参数允许你下载最近的主干源代码文件而不是分支源代码文件。
创建编译树
所有的目标文件和库文件都应放在平行编译树而不是源代码树下面。你可以使用lndir 命令来创建编译树:
代码 5.4: 创建平行编译树
# cd ~/DRI-CVS
# ln -s xc XFree40
# mkdir build; cd build
# lndir -silent -ignorelinks ../XFree40
编译树由指向CVS源代码树的符号连接构成。我们建议有经验的用户创建多个编译树以方便你使用不同的选项进行编译和测试。
编辑 host.def 文件
~/DRI-CVS/build/xc/config/cf/host.def文件用于配置XFree86的编译过程。你可以通过对这个文件的修改来定义你的编译选项或者为你自己的系统进行某些特定的调整。默认的host.def看起来应该像这个样子:
代码 5.5: host.def
#define DefaultCCOptions -Wall
// 适用于 i386 构架:
#define DefaultGcc2i386Opt -O2
// 适用于 Alpha 构架:
#define DefaultGcc2AxpOpt -O2 -mcpu=ev6 (or similar)
// 适用于所有计算机构架
#define LibraryCDebugFlags -O2
#define BuildServersOnly YES
#define XF86CardDrivers vga tdfx mga ati i810
#define LinuxDistribution LinuxRedHat
#define DefaultCCOptions -ansi GccWarningOptions -pipe
#define BuildXF86DRI YES
/* Optionally turn these on for debugging */
/* #define GlxBuiltInTdfx YES */
/* #define GlxBuiltInMga YES */
/* #define GlxBuiltInR128 YES */
/* #define GlxBuiltInRadeon YES */
/* #define DoLoadableServer NO */
#define SharedLibFont NO
代码 5.6: host.def的后续内容
// 请注意,你的显示卡驱动程序名称应该加入到XF86CardDrivers这一行// 如果你想在Mesa和DRI驱动程序中使用3DNow!优化指令,请加入以下的代码:
#define MesaUse3DNow YES
// 如果你没有AMD处理器,你同样可以使用这个选项。// DRI将在运行时自动检查你的处理器是否支持3DNow!,如果支持的话,DRI将自动启用它。
如果你想在Mesa和DRI驱动程序中使用SSE优化指令,你必须将你的系统内核升级到2.4.X版本。 Mesa将在运行过程中检查你的处理器和操作系统是否都支持SSE指令。另外,如果你要将Mesa编译进DRI,你需要保证/usr/src/linux下面已经包含了Linux 2.4.x 的内核头文件。如果你的/usr/src/linux下面是较早的Linux内核文件而且你又开启了SSE优化指令支持, Mesa将给你发出一个警告并且停止编译。如果你确实已经安装了2.4.x内核,请在host.def中加入以下的内容:
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752019/viewspace-941269/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10752019/viewspace-941269/
硬件3D加速指南(转)相关推荐
- FreeBSD中3D加速功能的启用
在windows的世界里,3D功能是一个比较热门的话题,大多数的游戏都是基于3D的.但在*nix的世界,3D好象就不是那么太重要的,甚至有的"大侠"级的高手,竟然不知道有3D功能的 ...
- 海思芯片硬件java加速_海思Hi3719C V100芯片简介
主要特点 CPU:arm Cortex A9 双核;独立的 I-Cache.D-Cache.L2 Cache;集成多媒体加速引擎 NEON;支持硬件 Java 加速;集成硬件浮点协处理器 3D GPU ...
- 图形2d,3d加速简介
为了使linux下图形更加流畅,必须使用加速.常用的加速方法如下 加速常见有三种方式 a)ShadowFB ShadowFB是xserver自带的与体系结构无关的2D加速方式,它将系统framebuf ...
- android 启动3d加速,内置显卡 六款支持3D加速安卓手机推荐
[PConline 海选导购]科技发达的今天,3D早已深入我们的生活.游戏玩家都喜欢自己电脑的3D功能强大,可以玩大型3D游戏.随着手机与平板电脑的硬件不断升级,掌上终端设备的性能越来越强大,部分手机 ...
- [开发] RK3328媒体脚本(Rock64,Renegade)-启用视频和3D加速
[开发] RK3328媒体脚本(Rock64,Renegade)-启用视频和3D加速 ============ L4D2漫步云端服务器-主力站 chdong.top L4D2漫步云端服务器-论坛htt ...
- [开发] RK3399媒体脚本-启用视频和3D加速
[开发] RK3399媒体脚本-启用视频和3D加速 https://forum.armbian.com/topic/9272-development-rk3399-media-script/ ==== ...
- vmware linux 3d加速,Ubuntu虚拟机安装Virtualbox增强功能启用3D加速
本文介绍如何为ubuntu虚拟机安装Virtualbox增强功能(英文名叫Guest Additions),很多同学都感觉ubuntu虚拟机非常卡,这是因为Unity桌面需要3D支持,而要在virtu ...
- linux虚拟机流畅,启用3D加速让Ubuntu 20.04虚拟机更快更流畅
原标题:启用3D加速让Ubuntu 20.04虚拟机更快更流畅 在这个快速教程中,我将向你展示如何在VirtualBox上正确地启用3D加速,如果你想让你的Ubuntu 20.04 LTS虚拟机运行的 ...
- 更新了VMWare Tools后还是不能开启3D加速
在VMWare虚拟机中,3D加速选项下面会出现,需要更新WMWare Tools才能开启该功能,但是按照要求安装完后还是不能开启3D加速功能,虚拟机还是卡的不行,下面是解决方案: 1 .Mac下VMW ...
最新文章
- 剑指Offer_Python实现
- Bootstrap部分---环境安装及一个可视化的布局;
- FSAF目标检测2019
- [python]两种编程思维--面向过程和面向对象
- HDU 1261 字串数
- 团队作业6-项目总结
- c语言程序设计夏宽理第三版答案,(100)西南大学2021计算机考研数据速览(特别更新版),民族脊梁袁隆平院士的母校!...
- linux 蓝牙攻击,研究人员担心BleedingTooth蓝牙漏洞给Linux系统带来风险
- PostgreSQL 10 高可用 本地SSD盘 版本发布
- PKU/POJ 2054 Color a Tree
- swift 可选链_Swift可选链
- 图解HTTPS协议加密解密全过程
- 计算机一级操作题题库在线,全国计算机一级操作题「题库」
- lgg7刷机包下载_LG G7 恢复Download回官方。
- xpose框架使用android studio
- 书籍推荐-docker入门书籍
- Android自定义星星评分控件,高效
- linux centos系统启动失败:VFS:Unable to mount root fs on unknown-block
- Linux编程入门四进程
- Linux内存管理宏观篇(三)物理内存:物理页面