/[gentoo]/xml/htdocs/doc/en/dri-howto.xml
Gentoo

Contents of /xml/htdocs/doc/en/dri-howto.xml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.52 - (show annotations) (download) (as text)
Mon Dec 9 08:46:53 2013 UTC (10 months, 1 week ago) by swift
Branch: MAIN
CVS Tags: HEAD
Changes since 1.51: +2 -2 lines
File MIME type: application/xml
Dri howto moved to https://wiki.gentoo.org/wiki/Xorg/Hardware_3D_acceleration_guide

1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
3 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/dri-howto.xml,v 1.51 2013/07/27 21:06:37 swift Exp $ -->
4
5 <guide disclaimer="obsolete" redirect="https://wiki.gentoo.org/wiki/Xorg/Hardware_3D_acceleration_guide">
6 <title>Hardware 3D Acceleration Guide</title>
7
8 <author title="Author">
9 <mail link="dberkholz"/>
10 </author>
11 <author title="Editor">
12 <mail link="peesh"/>
13 </author>
14 <author title="Editor">
15 <mail link="nightmorph"/>
16 </author>
17
18 <abstract>
19 This document is a guide to getting 3D acceleration working using the DRM with
20 Xorg in Gentoo Linux.
21 </abstract>
22
23 <!-- The content of this document is licensed under the CC-BY-SA license -->
24 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
25 <license/>
26
27 <version>7</version>
28 <date>2013-07-27</date>
29
30 <chapter>
31 <title>Introduction</title>
32 <section>
33 <title>What is hardware 3D acceleration and why do I want it?</title>
34 <body>
35
36 <p>
37 With hardware 3D acceleration, three-dimensional rendering uses the graphics
38 processor on your video card instead of taking up valuable CPU resources
39 drawing 3D images. It's also referred to as "hardware acceleration" instead of
40 "software acceleration" because without this 3D acceleration your CPU is forced
41 to draw everything itself using the Mesa software rendering libraries, which
42 takes up quite a bit of processing power. While Xorg typically supports 2D
43 hardware acceleration, it often lacks hardware 3D acceleration.
44 Three-dimensional hardware acceleration is valuable in situations requiring
45 rendering of 3D objects such as games, 3D CAD and modeling.
46 </p>
47
48 </body>
49 </section>
50 <section>
51 <title>How do I get hardware 3D acceleration?</title>
52 <body>
53
54 <p>
55 In many cases, both binary and open-source drivers exist. Open source drivers
56 are preferable since we're using Linux and open source is one of its underlying
57 principles. Sometimes, binary drivers are the only option, especially if your
58 graphics card is so new that open source drivers have not yet been written to
59 support its features. Binary drivers include <c>x11-drivers/nvidia-drivers</c>
60 for nVidia cards and <c>x11-drivers/ati-drivers</c> for AMD/ATI cards.
61 </p>
62
63 </body>
64 </section>
65 <section>
66 <title>What is DRI?</title>
67 <body>
68
69 <p>
70 The <uri link="http://dri.freedesktop.org/wiki/">Direct Rendering
71 Infrastructure</uri>, also known as the DRI, is a framework for allowing direct
72 access to graphics hardware in a safe and efficient manner. It includes changes
73 to the X server, to several client libraries and to the kernel. The first major
74 use for the DRI is to create fast OpenGL implementations.
75 </p>
76
77 </body>
78 </section>
79 <section>
80 <title>What is the DRM and how does it relate to regular Xorg?</title>
81 <body>
82
83 <p>
84 The DRM (Direct Rendering Manager) is an <e>enhancement</e> to Xorg that adds 3D
85 acceleration for cards by adding the kernel module necessary for direct
86 rendering.
87 </p>
88
89 </body>
90 </section>
91 <section>
92 <title>Purpose</title>
93 <body>
94
95 <p>
96 This guide is for people who can't get direct rendering working with just Xorg.
97 The DRM works for the following drivers:
98 </p>
99
100 <ul>
101 <li>3dfx</li>
102 <li>intel</li>
103 <li>matrox</li>
104 <li>nouveau</li>
105 <li>rage128</li>
106 <li>radeon</li>
107 <li>mach64</li>
108 <li>sis300</li>
109 <li>via</li>
110 </ul>
111
112 <p>
113 See the <uri link="http://dri.freedesktop.org/">DRI homepage</uri> for more info
114 and documentation.
115 </p>
116
117 </body>
118 </section>
119 </chapter>
120
121 <chapter>
122 <title>Install Xorg and configure your kernel</title>
123 <section>
124 <title>Install Xorg</title>
125 <body>
126
127 <p>
128 Please read our <uri link="https://wiki.gentoo.org/wiki/Xorg/Configuration">Xorg Configuration
129 Guide</uri> to get Xorg up and running.
130 </p>
131
132 </body>
133 </section>
134 <section>
135 <title>Configure your kernel</title>
136 <body>
137
138 <p>
139 Probe for your chipset and enable just that one.
140 </p>
141
142 <pre caption="Checking your AGP chipset">
143 # <i>emerge pciutils; lspci | grep AGP</i>
144 # <i>00:01.0 PCI bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)</i>
145 <comment>(Your output may not match the above due to different hardware.)</comment>
146 </pre>
147
148 <p>
149 If your chipset is not supported by the kernel you might have some success by
150 passing <c>agp=try_unsupported</c> as a kernel parameter. This will use Intel's
151 generic routines for AGP support. To add this parameter, edit your bootloader
152 configuration file!
153 </p>
154
155 <p>
156 Most, if not all, kernels should have these options. This was configured using a
157 standard <c>gentoo-sources</c> kernel.
158 </p>
159
160 <pre caption="Configuring the kernel">
161 # <i>ls -l /usr/src/linux </i>
162 lrwxrwxrwx 1 root root 22 2007-02-14 20:12 /usr/src/linux -> linux-2.6.18-gentoo-r4
163 <comment>(Make sure /usr/src/linux links to your current kernel.)</comment>
164 # <i>cd /usr/src/linux</i>
165 # <i>make menuconfig</i>
166 </pre>
167
168 <pre caption="make menuconfig options">
169 Processor type and features --->
170 &lt;*&gt; MTRR (Memory Type Range Register) support
171 Device drivers --->
172 Graphics support --->
173 &lt;M&gt; /dev/agpgart (AGP Support) --->
174 <comment>(The agpgart option is not present on 64-bit kernels; just choose your chipset support.)</comment>
175 &lt;M&gt; Intel 440LX/BX/GX, I8xx and E7x05 support
176 <comment>(Enable your chipset instead of the above.)</comment>
177 &lt;M&gt; Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
178 &lt;M&gt; <comment>(Select your graphics card from the list)</comment>
179 </pre>
180
181 </body>
182 </section>
183 <section>
184 <title>Compile and install your kernel</title>
185 <body>
186
187 <pre caption="Compiling and installing kernel">
188 # <i>make &amp;&amp; make modules_install</i>
189 </pre>
190
191 <p>
192 Don't forget to set up <path>grub.conf</path> or <path>lilo.conf</path> and run
193 <c>/sbin/lilo</c> if you use LILO.
194 </p>
195
196 </body>
197 </section>
198 <section>
199 <title>Add your user to the video group</title>
200 <body>
201
202 <p>
203 Next, add your user(s) to the video group, as explained in the <uri
204 link="/doc/en/handbook">handbook</uri>:
205 </p>
206
207 <pre caption="Adding a user to the video group">
208 # <i>gpasswd -a username video</i>
209 </pre>
210
211 </body>
212 </section>
213 </chapter>
214
215 <chapter>
216 <title>Configure direct rendering</title>
217 <section id="configure_xorg">
218 <title>Configure Xorg</title>
219 <body>
220
221 <p>
222 Hopefully just adding your user to the <c>video</c> group is sufficient to
223 enable direct rendering. However, you may also need to create a file in
224 <path>/etc/X11/xorg.conf.d/</path>. You can name it anything you like; just make
225 sure it ends in <path>.conf</path>. Open up your favorite text editor and create
226 a file with this inside it:
227 </p>
228
229 <pre caption="/etc/X11/xorg.conf.d/10-dri.conf">
230 Section "Device"
231 Driver "radeon"
232 <comment>(Replace radeon with the name of your driver.)</comment>
233 EndSection
234 Section "dri"
235 Mode 0666
236 EndSection
237 </pre>
238
239 </body>
240 </section>
241 <section>
242 <title>Changes to /etc/conf.d/modules</title>
243 <body>
244
245 <p>
246 You will need to add the module name that your card uses to
247 <path>/etc/conf.d/modules</path> to ensure that the module is
248 loaded automatically when the system starts up.
249 </p>
250
251 <pre caption="Editing /etc/conf.d/modules">
252 <comment>(Change module name as required.)</comment>
253 modules="<i>intel-agp</i>"
254 </pre>
255
256 <note>
257 If you compiled <c>agpgart</c> as a module, you will also need to add it to
258 <path>/etc/conf.d/modules</path>.
259 </note>
260
261 </body>
262 </section>
263 </chapter>
264
265 <chapter>
266 <title>Test 3D acceleration</title>
267 <section>
268 <title>Reboot to the new kernel</title>
269 <body>
270
271 <p>
272 Reboot your computer to your new kernel and login as a normal user. It's time to
273 see if you have direct rendering and how good it is. <c>glxinfo</c> and
274 <c>glxgears</c> are part of the <c>mesa-progs</c> package, so make sure it is
275 installed before you attempt to run these commands.
276 </p>
277
278 <pre caption="Testing rendering">
279 $ <i>startx</i>
280 <comment>(No need to load modules for your driver or agpgart, even if you compiled them as a module.)</comment>
281 <comment>(They will be loaded automatically.)</comment>
282 $ <i>glxinfo | grep rendering</i>
283 direct rendering: Yes
284 <comment>(If it says "No", you don't have 3D acceleration.)</comment>
285 $ <i>glxgears</i>
286 <comment>(Test your frames per second (FPS) at the default size. The number should be
287 significantly higher than before configuring DRM. Do this while the CPU is as idle as
288 possible.)</comment>
289 </pre>
290
291 <note>
292 FPS may be limited by your screen's refresh rate, so keep this in mind if
293 <c>glxgears</c> reports only about 70-100 FPS. <c>games-fps/ut2004-demo</c> or
294 other 3D games are better benchmarking tools, as they give you real-world
295 performance results.
296 </note>
297
298 </body>
299 </section>
300 <section>
301 <title>Get the most out of direct rendering</title>
302 <body>
303
304 <p>
305 If you want to set more features, for performance or other reasons, check out
306 the <uri link="http://dri.freedesktop.org/wiki/FeatureMatrix">feature
307 matrix</uri> on the DRI web site or the <uri
308 link="http://dri.sourceforge.net/doc/dri_driver_features.phtml">features
309 listing</uri> on Sourceforge.
310 </p>
311
312 </body>
313 </section>
314 </chapter>
315
316 <chapter>
317 <title>Troubleshooting</title>
318 <section>
319 <title>It doesn't work. I don't have rendering, and I can't tell why.</title>
320 <body>
321
322 <p>
323 Try <c>modprobe radeon</c> before you start the X server (replace <c>radeon</c>
324 with the name of your driver). Also, try building agpgart into the kernel
325 instead of as a module.
326 </p>
327
328 </body>
329 </section>
330 <section>
331 <title>When I startx, I get this error: "[drm] failed to load kernel module agpgart"</title>
332 <body>
333
334 <p>
335 That's because you compiled agpgart into the kernel instead of as a module.
336 Ignore it unless you're having problems.
337 </p>
338
339 </body>
340 </section>
341 <section>
342 <title>I have a Radeon, and I want TV-Out.</title>
343 <body>
344
345 <p>
346 The drivers originally developed by the <uri
347 link="http://gatos.sf.net">GATOS</uri> project have been merged into Xorg's
348 codebase. You don't need anything special for TV-Out;
349 <c>x11-drivers/xf86-video-ati</c> will work just fine.
350 </p>
351
352 </body>
353 </section>
354 <section>
355 <title>
356 It doesn't work. My card is so incredibly new and cool that it isn't supported
357 at all.
358 </title>
359 <body>
360
361 <p>
362 Try out the binary drivers. For AMD cards, use <c>ati-drivers</c>; a listing is
363 at <uri>http://support.amd.com/us/gpudownload/Pages/index.aspx</uri>. If those
364 don't support it, use fbdev. It's slow, but it works.
365 </p>
366
367 </body>
368 </section>
369 <section>
370 <title>I have a PCI card and it doesn't work. Help!</title>
371 <body>
372
373 <p>
374 Create a config file in <path>/etc/X11/xorg.conf.d/</path>; name it anything you
375 want as long as it ends in <path>.conf</path>. Add the following to it:
376 </p>
377
378 <pre caption="/etc/X11/xorg.conf.x/10-pcimode.conf">
379 Section "Device"
380 Option "ForcePCIMode" "True"
381 EndSection
382 </pre>
383
384 </body>
385 </section>
386 </chapter>
387
388 <chapter>
389 <title>References</title>
390 <section>
391 <body>
392
393 <ol>
394 <li><uri>http://forums.gentoo.org/viewtopic.php?t=46681</uri></li>
395 <li><uri>http://forums.gentoo.org/viewtopic.php?t=29264</uri></li>
396 <li><uri>http://dri.freedesktop.org/</uri></li>
397 </ol>
398
399 </body>
400 </section>
401 <section>
402 <title>Feedback</title>
403 <body>
404
405 <p>
406 With suggestions, questions, etc., e-mail <mail link="dberkholz"/>.
407 </p>
408
409 </body>
410 </section>
411 </chapter>
412 </guide>

  ViewVC Help
Powered by ViewVC 1.1.20