1 |
<?xml version="1.0" encoding="UTF-8"?> |
2 |
<!-- $Header: /home/cvsroot/gentoo/xml/htdocs/doc/en/dri-howto.xml,v 1.7 2003/12/20 19:55:17 swift Exp $ --> |
3 |
<!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> |
4 |
|
5 |
<guide link="/doc/en/dri-howto.xml"> |
6 |
<title>Hardware 3D Acceleration Guide</title> |
7 |
<author title="Author"> |
8 |
<mail link="spyderous@gentoo.org">Donnie Berkholz</mail> |
9 |
</author> |
10 |
<author title="Editor"> |
11 |
<mail link="peesh@gentoo.org">Jorge Paulo</mail> |
12 |
</author> |
13 |
|
14 |
<license/> |
15 |
|
16 |
<abstract> |
17 |
This document is a guide to getting 3D acceleration working using XFree-DRM |
18 |
with XFree86 in Gentoo Linux. |
19 |
</abstract> |
20 |
|
21 |
<version>1.0.1</version> |
22 |
<date>December 19 2003</date> |
23 |
|
24 |
<chapter> |
25 |
<title>Introduction</title> |
26 |
<section> |
27 |
<title>What is hardware 3D acceleration and why do I want it?</title> |
28 |
<body> |
29 |
|
30 |
<p> |
31 |
With hardware 3D acceleration, three-dimensional rendering uses the graphics |
32 |
processor on your video card instead of taking up valuable CPU resources |
33 |
drawing 3D images. It's also referred to as "hardware acceleration" instead of |
34 |
"software acceleration" because without this 3D acceleration your CPU is forced |
35 |
to draw everything itself using the Mesa software rendering libraries, which |
36 |
takes up quite a bit of processing power. While XFree86 typically supports 2D |
37 |
hardware acceleration, it often lacks hardware 3D acceleration. |
38 |
Three-dimensional hardware acceleration is valuable in situations requiring |
39 |
rendering of 3D objects such as games, 3D CAD and modeling. |
40 |
</p> |
41 |
|
42 |
</body> |
43 |
</section> |
44 |
<section> |
45 |
<title>How do I get hardware 3D acceleration?</title> |
46 |
<body> |
47 |
|
48 |
<p> |
49 |
In many cases, both binary and open-source drivers exist. Open-source drivers |
50 |
are preferable since we're using Linux and open source is one of its underlying |
51 |
principles. Sometimes, binary drivers are the only option, like with nVidia's |
52 |
cards. Binary drivers include media-video/nvidia-kernel and |
53 |
media-video/nvidia-glx for nVidia cards, media-video/mgavideo for Matrox cards |
54 |
and media-video/ati-drivers for ATI cards. Other open-source drivers include |
55 |
media-video/kyro-kernel for KyroII cards and media-video/ati-gatos for ATI |
56 |
cards, which aim to support ATI's video capabilities more fully. |
57 |
</p> |
58 |
|
59 |
</body> |
60 |
</section> |
61 |
<section> |
62 |
<title>What is DRI?</title> |
63 |
<body> |
64 |
|
65 |
<p> |
66 |
The Direct Rendering Infrastructure (<uri |
67 |
link="http://dri.sourceforge.net">dri.sourceforge.net</uri>), also known as the |
68 |
DRI, is a framework for allowing direct access to graphics hardware in a safe |
69 |
and efficient manner. It includes changes to the X server, to several client |
70 |
libraries and to the kernel. The first major use for the DRI is to create fast |
71 |
OpenGL implementations. |
72 |
</p> |
73 |
|
74 |
</body> |
75 |
</section> |
76 |
<section> |
77 |
<title>What is XFree-DRM and how does it relate to regular XFree86?</title> |
78 |
<body> |
79 |
|
80 |
<p> |
81 |
XFree-DRM is an <e>enhancement</e> to XFree86 that adds 3D acceleration for |
82 |
cards by adding the kernel module necessary for direct rendering. |
83 |
</p> |
84 |
|
85 |
</body> |
86 |
</section> |
87 |
<section> |
88 |
<title>Purpose</title> |
89 |
<body> |
90 |
|
91 |
<p> |
92 |
This guide is for people who can't get direct rendering working with just |
93 |
XFree. XFree-DRM works for 3dfx, gamma, i8x0, matrox, rage128, radeon, mach64 |
94 |
(as of xfree-drm-4.3.0-r7) and sis300 series drivers. Since the 2.4 kernels' |
95 |
Direct Rendering Manager (DRM) doesn't support XFree 4.3, the xfree-drm package |
96 |
is needed. If you're using a 2.6 kernel, its DRM supports XFree 4.3; Gentoo's |
97 |
XFree-DRM package is not yet working on 2.6 kernels. See the <uri |
98 |
link="http://dri.sourceforge.net">DRI homepage</uri> for more info and |
99 |
documentation. |
100 |
</p> |
101 |
|
102 |
</body> |
103 |
</section> |
104 |
<section> |
105 |
<title>Feedback</title> |
106 |
<body> |
107 |
|
108 |
<p> |
109 |
With suggestions, questions, etc., e-mail <mail |
110 |
link="spyderous@gentoo.org">Donnie Berkholz</mail>. |
111 |
</p> |
112 |
|
113 |
</body> |
114 |
</section> |
115 |
</chapter> |
116 |
|
117 |
<chapter> |
118 |
<title>Install XFree86 and configure your kernel</title> |
119 |
<section> |
120 |
<title>Install XFree86</title> |
121 |
<body> |
122 |
|
123 |
<pre> |
124 |
# <i>emerge x11-base/xfree</i> |
125 |
</pre> |
126 |
|
127 |
</body> |
128 |
</section> |
129 |
<section> |
130 |
<title>Configure your kernel</title> |
131 |
<body> |
132 |
|
133 |
<p> |
134 |
Probe for your chipset and enable just that one. |
135 |
</p> |
136 |
|
137 |
<pre> |
138 |
# <i>emerge pciutils; lspci | grep AGP</i> |
139 |
# <i>00:01.0 PCI bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)</i> |
140 |
<codenote>Your output may not match the above due to different hardware.</codenote> |
141 |
</pre> |
142 |
|
143 |
<p> |
144 |
Most, if not all, kernels should have these options. This was configured using |
145 |
gentoo-sources-2.4.20-r5. |
146 |
</p> |
147 |
|
148 |
<pre> |
149 |
# <i>ls -l /usr/src/linux </i> |
150 |
lrwxrwxrwx 1 root root 22 May 29 18:20 /usr/src/linux -> linux-2.4.20-gentoo-r5 |
151 |
<codenote>Make sure <path>/usr/src/linux</path> links to your current kernel.</codenote> |
152 |
# <i>cd /usr/src/linux</i> |
153 |
# <i>make menuconfig</i> |
154 |
</pre> |
155 |
|
156 |
<pre> |
157 |
Processor type and features ---> |
158 |
<*> MTRR (Memory Type Range Register) support |
159 |
Character devices ---> |
160 |
<*> /dev/agpgart (AGP Support) |
161 |
[M] Intel 440LX/BX/GX and I815/I820/I830M/I830MP/I840/I845/I850/I860 support |
162 |
<codenote>Enable your chipset instead of the above.</codenote> |
163 |
[ ] Direct Rendering Manager (XFree86 DRI support) |
164 |
</pre> |
165 |
|
166 |
<p> |
167 |
Make sure the Direct Rendering Manager (DRM) is <e>off</e>. The XFree-DRM |
168 |
package will provide its own. The 2.4 kernel's version is for XFree 4.2. |
169 |
</p> |
170 |
|
171 |
</body> |
172 |
</section> |
173 |
<section> |
174 |
<title>Compile and install your kernel</title> |
175 |
<body> |
176 |
|
177 |
<pre> |
178 |
# <i>make dep && make clean bzImage modules modules_install</i> |
179 |
# <i>mount /boot</i> |
180 |
# <i>cp arch/i386/boot/bzImage /boot</i> |
181 |
</pre> |
182 |
|
183 |
<p> |
184 |
If you want your kernel to be named something other than bzImage, be sure to |
185 |
copy to /boot/yourname instead. Don't forget to set up grub.conf or lilo.conf |
186 |
and run /sbin/lilo if you use LILO. |
187 |
</p> |
188 |
|
189 |
</body> |
190 |
</section> |
191 |
</chapter> |
192 |
|
193 |
<chapter> |
194 |
<title>Install XFree-DRM and configure direct rendering</title> |
195 |
<section> |
196 |
<title>Install XFree-DRM</title> |
197 |
<body> |
198 |
|
199 |
<pre> |
200 |
# <i>ACCEPT_KEYWORDS="~x86" emerge xfree-drm</i> |
201 |
</pre> |
202 |
|
203 |
</body> |
204 |
</section> |
205 |
<section> |
206 |
<title>Configure XF86Config</title> |
207 |
<body> |
208 |
|
209 |
<p> |
210 |
Open <path>/etc/X11/XF86Config</path> with your favorite text editor and edit |
211 |
it to enable DRI and GLX. |
212 |
</p> |
213 |
|
214 |
<pre> |
215 |
... |
216 |
Section "Module" |
217 |
Load "dri" |
218 |
Load "glx" |
219 |
... |
220 |
EndSection |
221 |
... |
222 |
Section "Device" |
223 |
Driver "radeon" |
224 |
... |
225 |
EndSection |
226 |
... |
227 |
Section "dri" |
228 |
Mode 0666 |
229 |
EndSection |
230 |
</pre> |
231 |
|
232 |
<p> |
233 |
If you are using a different driver, replace "radeon" with yours. |
234 |
</p> |
235 |
|
236 |
</body> |
237 |
</section> |
238 |
</chapter> |
239 |
|
240 |
<chapter> |
241 |
<title>Test 3D acceleration</title> |
242 |
<section> |
243 |
<title>Reboot to the new kernel</title> |
244 |
<body> |
245 |
|
246 |
<p> |
247 |
Reboot your computer to your new kernel. It's time to see if you have direct |
248 |
rendering and how good it is. |
249 |
</p> |
250 |
|
251 |
<pre> |
252 |
# <i>startx</i> |
253 |
<codenote>No need to load modules for your driver or agpgart, if you compiled agpgart as a module.</codenote> |
254 |
<codenote>They will be loaded automatically.</codenote> |
255 |
# <i>glxinfo | grep rendering</i> |
256 |
direct rendering: Yes |
257 |
<codenote>If it says "No," you don't have 3D acceleration.</codenote> |
258 |
# <i>glxgears</i> |
259 |
<codenote>Test your frames per second (FPS) at the default size. The number should be significantly higher than before installing xfree-drm. Do this while the CPU is as idle as possible.</codenote> |
260 |
</pre> |
261 |
|
262 |
</body> |
263 |
</section> |
264 |
</chapter> |
265 |
|
266 |
<chapter> |
267 |
<title>Using the CVS sources</title> |
268 |
<section> |
269 |
<body> |
270 |
|
271 |
<warn> |
272 |
Don't do this if the package worked. |
273 |
</warn> |
274 |
|
275 |
<note> |
276 |
By their nature, CVS sources are always changing. Your configuration may not |
277 |
look exactly like the one below. |
278 |
</note> |
279 |
|
280 |
</body> |
281 |
</section> |
282 |
<section> |
283 |
<title>Do you need the CVS?</title> |
284 |
<body> |
285 |
|
286 |
<p> |
287 |
First you have to check whether the xfree-drm package works. If it doesn't and |
288 |
you have checked your logs to verify it's not a configuration error, you might |
289 |
want to consider the CVS sources. There are also daily driver snapshots |
290 |
available if you do not wish to build the full CVS. |
291 |
</p> |
292 |
|
293 |
</body> |
294 |
</section> |
295 |
<section> |
296 |
<title>Do the CVS sources support your card?</title> |
297 |
<body> |
298 |
|
299 |
<p> |
300 |
Check the DRI <uri link="http://dri.sourceforge.net/dri_status.phtml">supported |
301 |
cards list</uri> to see if the CVS supports your card. Even if it doesn't, but |
302 |
it supports a similar card, try it. |
303 |
</p> |
304 |
|
305 |
<warn> |
306 |
"Linux 2.4 doesn't support agp 8x, so I had to go find a backport. The backport |
307 |
works .... it doesn't patch quite properly, and it requires 2.4.21 (I've only |
308 |
gotten it to work with vanilla, straight from the tarball (not ebuild)). First |
309 |
go get the 2.4.20-2.4.21 patch from kernel.org .... (then get the patch,) It |
310 |
was on a mailing list somewhere. It doesn't patch cleanly -- one file fails, |
311 |
the pci_ids.h file, but if you actually read the file and the reject list, it's |
312 |
very easy to fix. But it does load, and it gives me 1600x1200 with video |
313 |
(although a bit slow b/c of lack of dga) with xfree-drm." (SanityInAnarchy on |
314 |
#gentoo) |
315 |
</warn> |
316 |
|
317 |
<impo> |
318 |
The patch is a little tricky to work with but <uri |
319 |
link="http://www.ussg.iu.edu/hypermail/linux/kernel/0302.2/att-1618/01-agp3.diff.bz2">here's |
320 |
the link</uri>. If you can disable 8X AGP in your BIOS, change it to 4X and you |
321 |
may not need the patch. |
322 |
</impo> |
323 |
|
324 |
</body> |
325 |
</section> |
326 |
<section> |
327 |
<title>Install the CVS sources</title> |
328 |
<body> |
329 |
|
330 |
<p> |
331 |
Follow this guide through "Compile and install your kernel." Then continue with |
332 |
this guide, which tracks step 6 of the <uri |
333 |
link="http://dri.sourceforge.net/doc/DRIcompile.html">DRI compilation |
334 |
guide</uri> and follows it through step 8.3. |
335 |
</p> |
336 |
|
337 |
</body> |
338 |
</section> |
339 |
<section> |
340 |
<title>Anonymous CVS download</title> |
341 |
<body> |
342 |
|
343 |
<p> |
344 |
Create a directory to store the CVS files: |
345 |
</p> |
346 |
|
347 |
<pre> |
348 |
# <i>cd ~</i> |
349 |
# <i>mkdir DRI-CVS</i> |
350 |
</pre> |
351 |
|
352 |
<p> |
353 |
Check out the CVS sources: |
354 |
</p> |
355 |
|
356 |
<pre> |
357 |
# <i>cd ~/DRI-CVS</i> |
358 |
# <i>cvs -d:pserver:anonymous@cvs.dri.sourceforge.net:/cvsroot/dri login</i> |
359 |
<codenote>(hit ENTER when prompted for a password)</codenote> |
360 |
# <i>cvs -z3 -d:pserver:anonymous@cvs.dri.sourceforge.net:/cvsroot/dri co xc</i> |
361 |
<codenote>The -z3 flag causes compression to be used to reduce the download time.</codenote> |
362 |
</pre> |
363 |
|
364 |
</body> |
365 |
</section> |
366 |
<section> |
367 |
<title>Updating your CVS sources</title> |
368 |
<body> |
369 |
|
370 |
<p> |
371 |
In the future you'll want to occasionally update your local copy of the DRI |
372 |
source code to get the latest changes. This can be done with: |
373 |
</p> |
374 |
|
375 |
<pre> |
376 |
# <i>cd ~/DRI-CVS</i> |
377 |
# <i>cvs -z3 update -dA xc</i> |
378 |
<codenote>The -d flag causes any new subdirectories to be created.</codenote> |
379 |
<codenote>The -A flag causes most recent trunk sources to be fetched, not branch sources.</codenote> |
380 |
</pre> |
381 |
|
382 |
</body> |
383 |
</section> |
384 |
<section> |
385 |
<title>Make a build tree</title> |
386 |
<body> |
387 |
|
388 |
<p> |
389 |
Rather than placing object files and library files right in the source tree, |
390 |
they're instead put into a parallel <e>build</e> tree. The build tree is made |
391 |
with the <c>lndir</c> command: |
392 |
</p> |
393 |
|
394 |
<pre> |
395 |
# <i>cd ~/DRI-CVS</i> |
396 |
# <i>ln -s xc XFree40</i> |
397 |
# <i>mkdir build; cd build</i> |
398 |
# <i>lndir -silent -ignorelinks ../XFree40</i> |
399 |
</pre> |
400 |
|
401 |
<p> |
402 |
The build tree will be populated with symbolic links which point back into the |
403 |
CVS source tree. Advanced users may have several build trees for compiling and |
404 |
testing with different options. |
405 |
</p> |
406 |
|
407 |
</body> |
408 |
</section> |
409 |
<section> |
410 |
<title>Edit the host.def file</title> |
411 |
<body> |
412 |
|
413 |
<p> |
414 |
The <path>~/DRI-CVS/build/xc/config/cf/host.def</path> file is used to |
415 |
configure the XFree86 build process. You can change it to customize your build |
416 |
options or make adjustments for your particular system configuration. The |
417 |
default host.def file will look something like this: |
418 |
</p> |
419 |
|
420 |
<pre> |
421 |
#define DefaultCCOptions -Wall |
422 |
<codenote>For i386:</codenote> |
423 |
#define DefaultGcc2i386Opt -O2 |
424 |
<codenote>For Alpha:</codenote> |
425 |
#define DefaultGcc2AxpOpt -O2 -mcpu=ev6 (or similar) |
426 |
<codenote>For all architectures</codenote> |
427 |
#define LibraryCDebugFlags -O2 |
428 |
#define BuildServersOnly YES |
429 |
#define XF86CardDrivers vga tdfx mga ati i810 |
430 |
#define LinuxDistribution LinuxRedHat |
431 |
#define DefaultCCOptions -ansi GccWarningOptions -pipe |
432 |
#define BuildXF86DRI YES |
433 |
/* Optionally turn these on for debugging */ |
434 |
/* #define GlxBuiltInTdfx YES */ |
435 |
/* #define GlxBuiltInMga YES */ |
436 |
/* #define GlxBuiltInR128 YES */ |
437 |
/* #define GlxBuiltInRadeon YES */ |
438 |
/* #define DoLoadableServer NO */ |
439 |
#define SharedLibFont NO |
440 |
</pre> |
441 |
|
442 |
<pre> |
443 |
<codenote>Note the XF86CardDrivers line to be sure your card's driver is listed.</codenote> |
444 |
<codenote>If you want to enable 3DNow! optimizations in Mesa and the DRI drivers, you should add the following:</codenote> |
445 |
#define MesaUse3DNow YES |
446 |
<codenote>You don't have to be using an AMD processor to enable this option.</codenote> |
447 |
<codenote>The DRI will look for 3DNow! support at runtime and only enable it if applicable.</codenote> |
448 |
</pre> |
449 |
|
450 |
<p> |
451 |
If you want to enable SSE optimizations in Mesa and the DRI drivers, you must |
452 |
upgrade to a Linux 2.4.x kernel. Mesa will verify that SSE is supported by both |
453 |
your processor and your operating system, but to build Mesa inside the DRI you |
454 |
need to have the Linux 2.4.x kernel headers in <path>/usr/src/linux</path>. If |
455 |
you enable SSE optimizations with an earlier version of the Linux kernel in |
456 |
<path>/usr/src/linux</path>, Mesa will not compile. You have been warned. If |
457 |
you do have a 2.4.x kernel, you should add the following: |
458 |
</p> |
459 |
|
460 |
<pre> |
461 |
#define MesaUseKatmai YES |
462 |
</pre> |
463 |
|
464 |
</body> |
465 |
</section> |
466 |
<section> |
467 |
<title>Compile the XFree86/DRI tree</title> |
468 |
<body> |
469 |
|
470 |
<p> |
471 |
To compile the complete DRI tree: |
472 |
</p> |
473 |
|
474 |
<pre> |
475 |
# <i>cd ~/DRI-CVS/build/xc/</i> |
476 |
# <i>make World >& world.log</i> |
477 |
</pre> |
478 |
|
479 |
<p> |
480 |
It may also be necessary to do the following, depending on what you placed in |
481 |
host.def: |
482 |
</p> |
483 |
|
484 |
<pre> |
485 |
# <i>cd ~/DRI-CVS/build/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel</i> |
486 |
# <i>make -f Makefile.linux radeon.o</i> |
487 |
<codenote>Replace radeon with your driver.</codenote> |
488 |
</pre> |
489 |
|
490 |
<p> |
491 |
With the default compilation flags it's normal to get a lot of warnings during |
492 |
compilation. Building will take some time so you may want to go check your |
493 |
email or visit slashdot. |
494 |
</p> |
495 |
|
496 |
<warn> |
497 |
Do not use the -j option with make (i.e., do not use distcc). It's reported that |
498 |
it does not work with XFree86/DRI. |
499 |
</warn> |
500 |
|
501 |
<p> |
502 |
Using your text editor, examine world.log for errors by searching for the |
503 |
pattern ***. |
504 |
</p> |
505 |
|
506 |
</body> |
507 |
</section> |
508 |
<section> |
509 |
<title>Install the CVS</title> |
510 |
<body> |
511 |
|
512 |
<p> |
513 |
Verify that the DRI kernel module(s) for your system were built: |
514 |
</p> |
515 |
|
516 |
<pre> |
517 |
# <i>cd ~/DRI-CVS/build/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel; ls</i> |
518 |
</pre> |
519 |
|
520 |
<p> |
521 |
For the 3dfx Voodoo, you should see <path>tdfx.o</path>. For the Matrox |
522 |
G200/G400, you should see <path>mga.o</path>. For the ATI Rage 128, you should |
523 |
see <path>r128.o</path>. For the ATI Radeon, you should see |
524 |
<path>radeon.o</path>. For the Intel i810, you should see <path>i810.o</path>. |
525 |
If the DRI kernel module(s) failed to build, you should verify that you're |
526 |
using the right version of the Linux kernel. The most recent kernels are not |
527 |
always supported. |
528 |
</p> |
529 |
|
530 |
<p> |
531 |
Install over your XFree86 installation. You may wish to back up xfree. |
532 |
</p> |
533 |
|
534 |
<pre> |
535 |
# <i>quickpkg xfree</i> |
536 |
<codenote>This backs up your XFree86 package.</codenote> |
537 |
# <i>make install</i> |
538 |
</pre> |
539 |
|
540 |
<p> |
541 |
Follow the "Configure XF86Config" section above. |
542 |
</p> |
543 |
|
544 |
<p> |
545 |
To load the appropriate DRM module in your running kernel, copy the kernel |
546 |
module to <path>/lib/modules/`uname -r`/kernel/drivers/char/drm/</path> then |
547 |
run <c>modules-update</c> and restart your X server. If you're not running the |
548 |
kernel you'll be using it in, instead of <c>`uname -r`,</c> use that kernel's |
549 |
name. |
550 |
</p> |
551 |
|
552 |
<warn> |
553 |
Make sure you first unload any older DRI kernel modules that might be already |
554 |
loaded. Note that some DRM modules require that the agpgart module be loaded |
555 |
first. |
556 |
</warn> |
557 |
|
558 |
</body> |
559 |
</section> |
560 |
</chapter> |
561 |
|
562 |
<chapter> |
563 |
<title>Tweak your performance</title> |
564 |
<section> |
565 |
<title>Get the most out of direct rendering</title> |
566 |
<body> |
567 |
|
568 |
<p> |
569 |
A few options may increase performance by up to 30 percent (or more) over the |
570 |
default. Set them in <path>/etc/X11/XF86Config</path>. |
571 |
</p> |
572 |
|
573 |
<pre> |
574 |
Section "Device" |
575 |
Option "AGPMode" "4" |
576 |
<codenote>This increased FPS from 609 to 618.</codenote> |
577 |
Option "AGPFastWrite" "True" |
578 |
<codenote>This had no measurable effect, but it may increase instability of your computer.</codenote> |
579 |
<codenote>You may also need to set it in your BIOS.</codenote> |
580 |
Option "EnablePageFlip" "True" |
581 |
<codenote>This improved FPS from 618 to 702. It also is "risky" but few people have reported problems.</codenote> |
582 |
... |
583 |
EndSection |
584 |
</pre> |
585 |
|
586 |
<p> |
587 |
If you want to set even more features, check out the <uri |
588 |
link="http://dri.sourceforge.net/doc/dri_driver_features.phtml">features |
589 |
listing</uri> on the DRI Web site. |
590 |
</p> |
591 |
|
592 |
</body> |
593 |
</section> |
594 |
</chapter> |
595 |
|
596 |
<chapter> |
597 |
<title>Troubleshooting</title> |
598 |
<section> |
599 |
<title>It doesn't work. I just recompiled my kernel or switched to a new one.</title> |
600 |
<body> |
601 |
|
602 |
<p> |
603 |
Whenever you rebuild your kernel or switch to another kernel, you'll have to |
604 |
rebuild the kernel module. Note that you don't need to remerge xfree, but you |
605 |
will need to remerge xfree-drm. |
606 |
</p> |
607 |
|
608 |
</body> |
609 |
</section> |
610 |
|
611 |
<section> |
612 |
<title>It doesn't work. I don't have rendering, and I can't tell why.</title> |
613 |
<body> |
614 |
|
615 |
<p> |
616 |
Try <c>insmod radeon</c> before you start the X server. Also, try building |
617 |
agpgart into the kernel instead of as a module. |
618 |
</p> |
619 |
|
620 |
</body> |
621 |
</section> |
622 |
<section> |
623 |
<title>When I <c>startx</c>, I get this error: "[drm] failed to load kernel module agpgart"</title> |
624 |
<body> |
625 |
|
626 |
<p> |
627 |
That's because you compiled agpgart into the kernel instead of as a module. |
628 |
Ignore it unless you're having problems. |
629 |
</p> |
630 |
|
631 |
</body> |
632 |
</section> |
633 |
<section> |
634 |
<title>Direct rendering doesn't work, and in <path>/var/log/XFree86.0.log</path> I have an error about driver version too low.</title> |
635 |
<body> |
636 |
|
637 |
<p> |
638 |
You aren't using the xfree-drm driver. Check if you compiled DRM and the driver |
639 |
into the kernel; you shouldn't have. |
640 |
</p> |
641 |
|
642 |
</body> |
643 |
</section> |
644 |
<section> |
645 |
<title>I have a Radeon, and I want TV-Out.</title> |
646 |
<body> |
647 |
|
648 |
<p> |
649 |
Check out ati-gatos drivers. <c>emerge -s gatos</c>. |
650 |
</p> |
651 |
|
652 |
</body> |
653 |
</section> |
654 |
<section> |
655 |
<title>It doesn't work. My card is so incredibly new and cool that it isn't supported at all.</title> |
656 |
<body> |
657 |
|
658 |
<p> |
659 |
Try out the binary drivers. For ati-drivers, a listing is at |
660 |
<uri>http://www.schneider-digital.de/html/download_ati.html</uri>. If those |
661 |
don't support it, use fbdev. It's slow, but it works. |
662 |
</p> |
663 |
|
664 |
</body> |
665 |
</section> |
666 |
<section> |
667 |
<title>I have a PCI card and it doesn't work. Help!</title> |
668 |
<body> |
669 |
|
670 |
<p> |
671 |
In section "Device" enable ForcePCIMode. |
672 |
</p> |
673 |
|
674 |
<pre> |
675 |
Option "ForcePCIMode" "True" |
676 |
</pre> |
677 |
|
678 |
</body> |
679 |
</section> |
680 |
</chapter> |
681 |
|
682 |
<chapter> |
683 |
<title>Acknowledgments</title> |
684 |
<section> |
685 |
<body> |
686 |
|
687 |
<ol> |
688 |
<li> |
689 |
Christopher Webber for suggesting a troubleshooting question about changing |
690 |
or recompiling kernels |
691 |
</li> |
692 |
<li> |
693 |
Steve, for suggesting consistency between the cases of dri and DRI in |
694 |
XF86Config |
695 |
</li> |
696 |
</ol> |
697 |
|
698 |
</body> |
699 |
</section> |
700 |
</chapter> |
701 |
|
702 |
<chapter> |
703 |
<title>References</title> |
704 |
<section> |
705 |
<body> |
706 |
|
707 |
<ol> |
708 |
<li>http://forums.gentoo.org/viewtopic.php?t=46681</li> |
709 |
<li>http://forums.gentoo.org/viewtopic.php?t=29264</li> |
710 |
<li>http://dri.sourceforge.net/</li> |
711 |
<li>http://www.retinalburn.net/linux/dri_status.html</li> |
712 |
</ol> |
713 |
|
714 |
</body> |
715 |
</section> |
716 |
</chapter> |
717 |
</guide> |