Merge branch 'upstream'
[nvidia.git] / doc / html / chapter-12.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <meta name="generator" content=
5 "HTML Tidy for FreeBSD (vers 1 September 2005), see www.w3.org">
6 <meta http-equiv="Content-Type" content=
7 "text/html; charset=us-ascii">
8 <title>Chapter&nbsp;12.&nbsp;Configuring TwinView</title>
9 <meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
10 <link rel="start" href="index.html" title=
11 "NVIDIA Accelerated FreeBSD Graphics Driver README and Installation Guide">
12 <link rel="up" href="part-01.html" title=
13 "Part&nbsp;I.&nbsp;Installation and Configuration Instructions">
14 <link rel="prev" href="chapter-11.html" title=
15 "Chapter&nbsp;11.&nbsp;Configuring AGP">
16 <link rel="next" href="chapter-13.html" title=
17 "Chapter&nbsp;13.&nbsp;Configuring GLX in Xinerama">
18 </head>
19 <body>
20 <div class="navheader">
21 <table width="100%" summary="Navigation header">
22 <tr>
23 <th colspan="3" align="center">Chapter&nbsp;12.&nbsp;Configuring
24 TwinView</th>
25 </tr>
26 <tr>
27 <td width="20%" align="left"><a accesskey="p" href=
28 "chapter-11.html">Prev</a>&nbsp;</td>
29 <th width="60%" align="center">Part&nbsp;I.&nbsp;Installation and
30 Configuration Instructions</th>
31 <td width="20%" align="right">&nbsp;<a accesskey="n" href=
32 "chapter-13.html">Next</a></td>
33 </tr>
34 </table>
35 <hr></div>
36 <div class="chapter" lang="en">
37 <div class="titlepage">
38 <div>
39 <div>
40 <h2 class="title"><a name="configtwinview" id=
41 "configtwinview"></a>Chapter&nbsp;12.&nbsp;Configuring
42 TwinView</h2>
43 </div>
44 </div>
45 </div>
46 <p>TwinView is a mode of operation where two display devices
47 (digital flat panels, CRTs, and TVs) can display the contents of a
48 single X screen in any arbitrary configuration. This method of
49 multiple monitor use has several distinct advantages over other
50 techniques (such as Xinerama):</p>
51 <div class="itemizedlist">
52 <ul type="disc">
53 <li>
54 <p>A single X screen is used. The NVIDIA driver conceals all
55 information about multiple display devices from the X server; as
56 far as X is concerned, there is only one screen.</p>
57 </li>
58 <li>
59 <p>Both display devices share one frame buffer. Thus, all the
60 functionality present on a single display (e.g., accelerated
61 OpenGL) is available with TwinView.</p>
62 </li>
63 <li>
64 <p>No additional overhead is needed to emulate having a single
65 desktop.</p>
66 </li>
67 </ul>
68 </div>
69 <p>If you are interested in using each display device as a separate
70 X screen, see <a href="chapter-14.html" title=
71 "Chapter&nbsp;14.&nbsp;Configuring Multiple X Screens on One Card">Chapter&nbsp;14,
72 <i>Configuring Multiple X Screens on One Card</i></a>.</p>
73 <h3>X Config TwinView Options</h3>
74 <p>To enable TwinView, you must specify the following option in the
75 Device section of your X Config file:</p>
76 <pre class="screen">
77     Option "TwinView"
78 </pre>
79 <p>You may also use any of the following options, though they are
80 not required:</p>
81 <pre class="screen">
82     Option "MetaModes"                "&lt;list of MetaModes&gt;"
83
84     Option "SecondMonitorHorizSync"   "&lt;hsync range(s)&gt;"
85     Option "SecondMonitorVertRefresh" "&lt;vrefresh range(s)&gt;"
86
87     Option "HorizSync"                "&lt;hsync range(s)&gt;"
88     Option "VertRefresh"              "&lt;vrefresh range(s)&gt;"
89
90     Option "TwinViewOrientation"      "&lt;relationship of head 1 to head 0&gt;"
91     Option "ConnectedMonitor"         "&lt;list of connected display devices&gt;"
92 </pre>
93 <p>See detailed descriptions of each option below.</p>
94 <p>Alternatively, you can enable TwinView by running</p>
95 <pre class="screen">
96     nvidia-xconfig --twinview
97 </pre>
98 <p>and restarting your X server. Or, you can configure TwinView
99 dynamically in the "Display Configuration" page in
100 nvidia-settings.</p>
101 <h3>Detailed Description of Options</h3>
102 <div class="variablelist">
103 <dl>
104 <dt><span class="term">TwinView</span></dt>
105 <dd>
106 <p>This option is required to enable TwinView; without it, all
107 other TwinView related options are ignored.</p>
108 </dd>
109 <dt><span class="term">SecondMonitorHorizSync,</span> <span class=
110 "term">SecondMonitorVertRefresh,</span></dt>
111 <dd>
112 <p>You specify the constraints of the second monitor through these
113 options. The values given should follow the same convention as the
114 "HorizSync" and "VertRefresh" entries in the Monitor section. As
115 the XF86Config man page explains it: the ranges may be a comma
116 separated list of distinct values and/or ranges of values, where a
117 range is given by two distinct values separated by a dash. The
118 HorizSync is given in kHz, and the VertRefresh is given in Hz.</p>
119 <p>These options are normally not needed: by default, the NVIDIA X
120 driver retrieves the valid frequency ranges from the display
121 device's EDID (see <a href="appendix-b.html" title=
122 "Appendix&nbsp;B.&nbsp;X Config Options">Appendix&nbsp;B, <i>X
123 Config Options</i></a> for a description of the "UseEdidFreqs"
124 option). The SecondMonitor options will override any frequency
125 ranges retrieved from the EDID.</p>
126 </dd>
127 <dt><span class="term">HorizSync,</span> <span class=
128 "term">VertRefresh,</span></dt>
129 <dd>
130 <p>Which display device is "first" and which is "second" is often
131 unclear. For this reason, you may use these options instead of the
132 SecondMonitor versions. With these options, you can specify a
133 semicolon-separated list of frequency ranges, each optionally
134 prepended with a display device name. For example:</p>
135 <pre class="screen">
136     Option "HorizSync"   "CRT-0: 50-110;  DFP-0: 40-70"
137     Option "VertRefresh" "CRT-0: 60-120;  DFP-0: 60"
138 </pre>
139 <p>See <a href="appendix-c.html" title=
140 "Appendix&nbsp;C.&nbsp;Display Device Names">Appendix&nbsp;C,
141 <i>Display Device Names</i></a> on Display Device Names for more
142 information.</p>
143 <p>These options are normally not needed: by default, the NVIDIA X
144 driver retrieves the valid frequency ranges from the display
145 device's EDID (see <a href="appendix-b.html" title=
146 "Appendix&nbsp;B.&nbsp;X Config Options">Appendix&nbsp;B, <i>X
147 Config Options</i></a> for a description of the "UseEdidFreqs"
148 option). The "HorizSync" and "VertRefresh" options override any
149 frequency ranges retrieved from the EDID or any frequency ranges
150 specified with the "SecondMonitorHorizSync" and
151 "SecondMonitorVertRefresh" options.</p>
152 </dd>
153 <dt><span class="term">MetaModes</span></dt>
154 <dd>
155 <p>MetaModes are "containers" that store information about what
156 mode should be used on each display device at any given time. Even
157 if only one display device is actively in use, the NVIDIA X driver
158 always uses a MetaMode to encapsulate the mode information per
159 display device, so that it can support dynamically enabling
160 TwinView.</p>
161 <p>Multiple MetaModes list the combinations of modes and the
162 sequence in which they should be used. When the NVIDIA driver tells
163 X what modes are available, it is really the minimal bounding box
164 of the MetaMode that is communicated to X, while the "per display
165 device" mode is kept internal to the NVIDIA driver. In MetaMode
166 syntax, modes within a MetaMode are comma separated, and multiple
167 MetaModes are separated by semicolons. For example:</p>
168 <pre class="screen">
169     "&lt;mode name 0&gt;, &lt;mode name 1&gt;; &lt;mode name 2&gt;, &lt;mode name 3&gt;"
170 </pre>
171 <p>Where &lt;mode name 0&gt; is the name of the mode to be used on
172 display device 0 concurrently with &lt;mode name 1&gt; used on
173 display device 1. A mode switch will then cause &lt;mode name 2&gt;
174 to be used on display device 0 and &lt;mode name 3&gt; to be used
175 on display device 1. Here is an example MetaMode:</p>
176 <pre class="screen">
177     Option "MetaModes" "1280x1024,1280x1024; 1024x768,1024x768"
178 </pre>
179 <p>If you want a display device to not be active for a certain
180 MetaMode, you can use the mode name "NULL", or simply omit the mode
181 name entirely:</p>
182 <pre class="screen">
183     "1600x1200, NULL; NULL, 1024x768"
184 </pre>
185 <p>or</p>
186 <pre class="screen">
187     "1600x1200; , 1024x768"
188 </pre>
189 <p>Optionally, mode names can be followed by offset information to
190 control the positioning of the display devices within the virtual
191 screen space; e.g.,</p>
192 <pre class="screen">
193     "1600x1200 +0+0, 1024x768 +1600+0; ..."
194 </pre>
195 <p>Offset descriptions follow the conventions used in the X
196 "-geometry" command line option; i.e., both positive and negative
197 offsets are valid, though negative offsets are only allowed when a
198 virtual screen size is explicitly given in the X config file.</p>
199 <p>When no offsets are given for a MetaMode, the offsets will be
200 computed following the value of the TwinViewOrientation option (see
201 below). Note that if offsets are given for any one of the modes in
202 a single MetaMode, then offsets will be expected for all modes
203 within that single MetaMode; in such a case offsets will be assumed
204 to be +0+0 when not given.</p>
205 <p>When not explicitly given, the virtual screen size will be
206 computed as the the bounding box of all MetaMode bounding boxes.
207 MetaModes with a bounding box larger than an explicitly given
208 virtual screen size will be discarded.</p>
209 <p>A MetaMode string can be further modified with a "Panning
210 Domain" specification; e.g.,</p>
211 <pre class="screen">
212     "1024x768 @1600x1200, 800x600 @1600x1200"
213 </pre>
214 <p>A panning domain is the area in which a display device's
215 viewport will be panned to follow the mouse. Panning actually
216 happens on two levels with TwinView: first, an individual display
217 device's viewport will be panned within its panning domain, as long
218 as the viewport is contained by the bounding box of the MetaMode.
219 Once the mouse leaves the bounding box of the MetaMode, the entire
220 MetaMode (i.e., all display devices) will be panned to follow the
221 mouse within the virtual screen, unless the "PanAllDisplays" X
222 configuration option is disabled. Note that individual display
223 devices' panning domains default to being clamped to the position
224 of the display devices' viewports, thus the default behavior is
225 just that viewports remain "locked" together and only perform the
226 second type of panning.</p>
227 <p>The most beneficial use of panning domains is probably to
228 eliminate dead areas -- regions of the virtual screen that are
229 inaccessible due to display devices with different resolutions. For
230 example:</p>
231 <pre class="screen">
232     "1600x1200, 1024x768"
233 </pre>
234 <p>produces an inaccessible region below the 1024x768 display.
235 Specifying a panning domain for the second display device:</p>
236 <pre class="screen">
237     "1600x1200, 1024x768 @1024x1200"
238 </pre>
239 <p>provides access to that dead area by allowing you to pan the
240 1024x768 viewport up and down in the 1024x1200 panning domain.</p>
241 <p>Offsets can be used in conjunction with panning domains to
242 position the panning domains in the virtual screen space (note that
243 the offset describes the panning domain, and only affects the
244 viewport in that the viewport must be contained within the panning
245 domain). For example, the following describes two modes, each with
246 a panning domain width of 1900 pixels, and the second display is
247 positioned below the first:</p>
248 <pre class="screen">
249     "1600x1200 @1900x1200 +0+0, 1024x768 @1900x768 +0+1200"
250 </pre>
251 <p>Because it is often unclear which mode within a MetaMode will be
252 used on each display device, mode descriptions within a MetaMode
253 can be prepended with a display device name. For example:</p>
254 <pre class="screen">
255     "CRT-0: 1600x1200,  DFP-0: 1024x768"
256 </pre>
257 <p>If no MetaMode string is specified, then the X driver uses the
258 modes listed in the relevant "Display" subsection, attempting to
259 place matching modes on each display device.</p>
260 </dd>
261 <dt><span class="term">TwinViewOrientation</span></dt>
262 <dd>
263 <p>This option controls the positioning of the second display
264 device relative to the first within the virtual X screen, when
265 offsets are not explicitly given in the MetaModes. The possible
266 values are:</p>
267 <pre class="screen">
268     "RightOf"  (the default)
269     "LeftOf"
270     "Above"
271     "Below"
272     "Clone"
273 </pre>
274 <p>When "Clone" is specified, both display devices will be assigned
275 an offset of 0,0.</p>
276 <p>Because it is often unclear which display device is "first" and
277 which is "second", TwinViewOrientation can be confusing. You can
278 further clarify the TwinViewOrientation with display device names
279 to indicate which display device is positioned relative to which
280 display device. For example:</p>
281 <pre class="screen">
282     "CRT-0 LeftOf DFP-0"
283 </pre>
284 <p></p>
285 </dd>
286 <dt><span class="term">ConnectedMonitor</span></dt>
287 <dd>
288 <p>With this option you can override what the NVIDIA kernel module
289 detects is connected to your graphics card. This may be useful, for
290 example, if any of your display devices do not support detection
291 using Display Data Channel (DDC) protocols. Valid values are a
292 comma-separated list of display device names; for example:</p>
293 <pre class="screen">
294     "CRT-0, CRT-1"
295     "CRT"
296     "CRT-1, DFP-0"
297 </pre>
298 <p>WARNING: this option overrides what display devices are detected
299 by the NVIDIA kernel module, and is very seldom needed. You really
300 only need this if a display device is not detected, either because
301 it does not provide DDC information, or because it is on the other
302 side of a KVM (Keyboard-Video-Mouse) switch. In most other cases,
303 it is best not to specify this option.</p>
304 </dd>
305 </dl>
306 </div>
307 <p>Just as in all X config entries, spaces are ignored and all
308 entries are case insensitive.</p>
309 <h3>Dynamic TwinView</h3>
310 <p>Using the NV-CONTROL X extension, the display devices in use by
311 an X screen, the mode pool for each display device, and the
312 MetaModes for each X screen can be dynamically manipulated. The
313 "Display Configuration" page in nvidia-settings uses this
314 functionality to modify the MetaMode list and then uses XRandR to
315 switch between MetaModes. This gives the ability to dynamically
316 configure TwinView.</p>
317 <p>The details of how this works are documented in the
318 nv-control-dpy.c sample NV-CONTROL client in the nvidia-settings
319 source tarball.</p>
320 <p>Because the NVIDIA X driver can now transition into and out of
321 TwinView dynamically, MetaModes are always used internally by the
322 NVIDIA X driver, regardless of how many display devices are
323 currently in use by the X screen and regardless of whether the
324 TwinView X configuration option was specified.</p>
325 <p>One implication of this implementation is that each MetaMode
326 must be uniquely identifiable to the XRandR X extension.
327 Unfortunately, two MetaModes with the same bounding box will look
328 the same to XRandR. For example, two MetaModes with different
329 orientations:</p>
330 <pre class="screen">
331     "CRT: 1600x1200 +0+0, DFP: 1600x1200 +1600+0"
332     "CRT: 1600x1200 +1600+0, DFP: 1600x1200 +0+0"
333 </pre>
334 <p>will look identical to the XRandR or XF86VidMode X extensions,
335 because they have the same total size (3200x1200), and
336 nvidia-settings would not be able to use XRandR to switch between
337 these MetaModes. To work around this limitation, the NVIDIA X
338 driver "lies" about the refresh rate of each MetaMode, using the
339 refresh rate of the MetaMode as a unique identifier.</p>
340 <p>The XRandR extension is currently being redesigned by the X.Org
341 community, so the refresh rate workaround may be removed at some
342 point in the future. This workaround can also be disabled by
343 setting the "DynamicTwinView" X configuration option to FALSE,
344 which will disable NV-CONTROL support for manipulating MetaModes,
345 but will cause the XRandR and XF86VidMode visible refresh rate to
346 be accurate.</p>
347 <div class="qandaset">
348 <table border="0" summary="Q and A Set">
349 <col align="left" width="1%">
350 <tbody>
351 <tr class="qandadiv">
352 <td align="left" valign="top" colspan="2">
353 <h3 class="title"><a name="id2627587" id="id2627587"></a>12.1.
354 Frequently Asked TwinView Questions</h3>
355 </td>
356 </tr>
357 <tr class="question">
358 <td align="left" valign="top"><a name="id2627593" id=
359 "id2627593"></a><a name="id2627595" id="id2627595"></a></td>
360 <td align="left" valign="top">
361 <p><b>Nothing gets displayed on my second monitor; what is
362 wrong?</b></p>
363 </td>
364 </tr>
365 <tr class="answer">
366 <td align="left" valign="top"></td>
367 <td align="left" valign="top">
368 <p>Monitors that do not support monitor detection using Display
369 Data Channel (DDC) protocols (this includes most older monitors)
370 are not detectable by your NVIDIA card. You need to explicitly tell
371 the NVIDIA X driver what you have connected using the
372 "ConnectedMonitor" option; e.g.,</p>
373 <pre class="screen">
374     Option "ConnectedMonitor" "CRT, CRT"
375 </pre>
376 <p></p>
377 </td>
378 </tr>
379 <tr class="question">
380 <td align="left" valign="top"><a name="id2627611" id=
381 "id2627611"></a><a name="id2627613" id="id2627613"></a></td>
382 <td align="left" valign="top">
383 <p><b>Will window managers be able to appropriately place windows
384 (e.g., avoiding placing windows across both display devices, or in
385 inaccessible regions of the virtual desktop)?</b></p>
386 </td>
387 </tr>
388 <tr class="answer">
389 <td align="left" valign="top"></td>
390 <td align="left" valign="top">
391 <p>Yes. The NVIDIA X driver provides a Xinerama extension that X
392 clients (such as window managers) can use to discover the current
393 TwinView configuration. Note that the Xinerama protocol provides no
394 way to notify clients when a configuration change occurs, so if you
395 modeswitch to a different MetaMode, your window manager will still
396 think you have the previous configuration. Using the Xinerama
397 extension, in conjunction with the XF86VidMode extension to get
398 modeswitch events, window managers should be able to determine the
399 TwinView configuration at any given time.</p>
400 <p>Unfortunately, the data provided by XineramaQueryScreens()
401 appears to confuse some window managers; to work around such broken
402 window mangers, you can disable communication of the TwinView
403 screen layout with the "NoTwinViewXineramaInfo" X config Option
404 (see <a href="appendix-b.html" title=
405 "Appendix&nbsp;B.&nbsp;X Config Options">Appendix&nbsp;B, <i>X
406 Config Options</i></a> for details).</p>
407 <p>The order that display devices are reported in via the TwinView
408 Xinerama information can be configured with the
409 TwinViewXineramaInfoOrder X configuration option.</p>
410 <p>Be aware that the NVIDIA driver cannot provide the Xinerama
411 extension if the X server's own Xinerama extension is being used.
412 Explicitly specifying Xinerama in the X config file or on the X
413 server commandline will prohibit NVIDIA's Xinerama extension from
414 installing, so make sure that the X server's log file does not
415 contain:</p>
416 <pre class="screen">
417     (++) Xinerama: enabled
418 </pre>
419 <p>if you want the NVIDIA driver to be able to provide the Xinerama
420 extension while in TwinView.</p>
421 <p>Another solution is to use panning domains to eliminate
422 inaccessible regions of the virtual screen (see the MetaMode
423 description above).</p>
424 <p>A third solution is to use two separate X screens, rather than
425 use TwinView. See <a href="chapter-14.html" title=
426 "Chapter&nbsp;14.&nbsp;Configuring Multiple X Screens on One Card">Chapter&nbsp;14,
427 <i>Configuring Multiple X Screens on One Card</i></a>.</p>
428 </td>
429 </tr>
430 <tr class="question">
431 <td align="left" valign="top"><a name="id2627721" id=
432 "id2627721"></a><a name="id2627723" id="id2627723"></a></td>
433 <td align="left" valign="top">
434 <p><b>Why can I not get a resolution of 1600x1200 on the second
435 display device when using a GeForce2 MX?</b></p>
436 </td>
437 </tr>
438 <tr class="answer">
439 <td align="left" valign="top"></td>
440 <td align="left" valign="top">
441 <p>Because the second display device on the GeForce2 MX was
442 designed to be a digital flat panel, the Pixel Clock for the second
443 display device is only 150 MHz. This effectively limits the
444 resolution on the second display device to somewhere around
445 1280x1024 (for a description of how Pixel Clock frequencies limit
446 the programmable modes, see the XFree86 Video Timings HOWTO). This
447 constraint is not present on GeForce4 or GeForce FX GPUs -- the
448 maximum pixel clock is the same on both heads.</p>
449 </td>
450 </tr>
451 <tr class="question">
452 <td align="left" valign="top"><a name="id2627733" id=
453 "id2627733"></a><a name="id2627735" id="id2627735"></a></td>
454 <td align="left" valign="top">
455 <p><b>Do video overlays work across both display devices?</b></p>
456 </td>
457 </tr>
458 <tr class="answer">
459 <td align="left" valign="top"></td>
460 <td align="left" valign="top">
461 <p>Hardware video overlays only work on the first display device.
462 The current solution is that blitted video is used instead on
463 TwinView.</p>
464 </td>
465 </tr>
466 <tr class="question">
467 <td align="left" valign="top"><a name="id2627746" id=
468 "id2627746"></a><a name="id2627748" id="id2627748"></a></td>
469 <td align="left" valign="top">
470 <p><b>How are virtual screen dimensions determined in
471 TwinView?</b></p>
472 </td>
473 </tr>
474 <tr class="answer">
475 <td align="left" valign="top"></td>
476 <td align="left" valign="top">
477 <p>After all requested modes have been validated, and the offsets
478 for each MetaMode's viewports have been computed, the NVIDIA driver
479 computes the bounding box of the panning domains for each MetaMode.
480 The maximum bounding box width and height is then found.</p>
481 <p>Note that one side effect of this is that the virtual width and
482 virtual height may come from different MetaModes. Given the
483 following MetaMode string:</p>
484 <pre class="screen">
485     "1600x1200,NULL; 1024x768+0+0, 1024x768+0+768"
486 </pre>
487 <p>the resulting virtual screen size will be 1600 x 1536.</p>
488 </td>
489 </tr>
490 <tr class="question">
491 <td align="left" valign="top"><a name="id2627768" id=
492 "id2627768"></a><a name="id2627770" id="id2627770"></a></td>
493 <td align="left" valign="top">
494 <p><b>Can I play full screen games across both display
495 devices?</b></p>
496 </td>
497 </tr>
498 <tr class="answer">
499 <td align="left" valign="top"></td>
500 <td align="left" valign="top">
501 <p>Yes. While the details of configuration will vary from game to
502 game, the basic idea is that a MetaMode presents X with a mode
503 whose resolution is the bounding box of the viewports for that
504 MetaMode. For example, the following:</p>
505 <pre class="screen">
506     Option "MetaModes" "1024x768,1024x768; 800x600,800x600"
507     Option "TwinViewOrientation" "RightOf"
508 </pre>
509 <p>produce two modes: one whose resolution is 2048x768, and another
510 whose resolution is 1600x600. Games such as Quake 3 Arena use the
511 VidMode extension to discover the resolutions of the modes
512 currently available. To configure Quake 3 Arena to use the above
513 MetaMode string, add the following to your q3config.cfg file:</p>
514 <pre class="screen">
515     seta r_customaspect "1"
516     seta r_customheight "600"
517     seta r_customwidth  "1600"
518     seta r_fullscreen   "1"
519     seta r_mode         "-1"
520 </pre>
521 <p>Note that, given the above configuration, there is no mode with
522 a resolution of 800x600 (remember that the MetaMode "800x600,
523 800x600" has a resolution of 1600x600"), so if you change Quake 3
524 Arena to use a resolution of 800x600, it will display in the lower
525 left corner of your screen, with the rest of the screen grayed out.
526 To have single head modes available as well, an appropriate
527 MetaMode string might be something like:</p>
528 <pre class="screen">
529     "800x600,800x600; 1024x768,NULL; 800x600,NULL; 640x480,NULL"
530 </pre>
531 <p>More precise configuration information for specific games is
532 beyond the scope of this document, but the above examples coupled
533 with numerous online sources should be enough to point you in the
534 right direction.</p>
535 </td>
536 </tr>
537 </tbody>
538 </table>
539 </div>
540 </div>
541 <div class="navfooter">
542 <hr>
543 <table width="100%" summary="Navigation footer">
544 <tr>
545 <td width="40%" align="left"><a accesskey="p" href=
546 "chapter-11.html">Prev</a>&nbsp;</td>
547 <td width="20%" align="center"><a accesskey="u" href=
548 "part-01.html">Up</a></td>
549 <td width="40%" align="right">&nbsp;<a accesskey="n" href=
550 "chapter-13.html">Next</a></td>
551 </tr>
552 <tr>
553 <td width="40%" align="left" valign="top">
554 Chapter&nbsp;11.&nbsp;Configuring AGP&nbsp;</td>
555 <td width="20%" align="center"><a accesskey="h" href=
556 "index.html">Home</a></td>
557 <td width="40%" align="right" valign="top">
558 &nbsp;Chapter&nbsp;13.&nbsp;Configuring GLX in Xinerama</td>
559 </tr>
560 </table>
561 </div>
562 </body>
563 </html>