Sophie

Sophie

distrib > Mageia > 1 > i586 > by-pkgid > 87d4646578a8b73b960e07e0cf5eee12 > files > 24

nvidia173-doc-html-173.14.31-1.mga1.nonfree.i586.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
<meta http-equiv="Content-Type" content=
"text/html; charset=us-ascii">
<title>Chapter&nbsp;11.&nbsp;Specifying OpenGL Environment Variable
Settings</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
<link rel="start" href="index.html" title=
"NVIDIA Accelerated Linux Graphics Driver README and Installation Guide">
<link rel="up" href="part-01.html" title=
"Part&nbsp;I.&nbsp;Installation and Configuration Instructions">
<link rel="prev" href="chapter-10.html" title=
"Chapter&nbsp;10.&nbsp;Allocating DMA Buffers on 64-bit Platforms">
<link rel="next" href="chapter-12.html" title=
"Chapter&nbsp;12.&nbsp;Configuring AGP">
</head>
<body>
<div class="navheader">
<table width="100%" summary="Navigation header">
<tr>
<th colspan="3" align="center">Chapter&nbsp;11.&nbsp;Specifying
OpenGL Environment Variable Settings</th>
</tr>
<tr>
<td width="20%" align="left"><a accesskey="p" href=
"chapter-10.html">Prev</a>&nbsp;</td>
<th width="60%" align="center">Part&nbsp;I.&nbsp;Installation and
Configuration Instructions</th>
<td width="20%" align="right">&nbsp;<a accesskey="n" href=
"chapter-12.html">Next</a></td>
</tr>
</table>
<hr></div>
<div class="chapter" lang="en">
<div class="titlepage">
<div>
<div>
<h2 class="title"><a name="openglenvvariables" id=
"openglenvvariables"></a>Chapter&nbsp;11.&nbsp;Specifying OpenGL
Environment Variable Settings</h2>
</div>
</div>
</div>
<h3>Full scene antialiasing</h3>
<p>Antialiasing is a technique used to smooth the edges of objects
in a scene to reduce the jagged "stairstep" effect that sometimes
appears. Full-scene antialiasing is supported on GeForce or newer
hardware. By setting the appropriate environment variable, you can
enable full-scene antialiasing in any OpenGL application on these
GPUs.</p>
<p>Several antialiasing methods are available and you can select
between them by setting the __GL_FSAA_MODE environment variable
appropriately. Note that increasing the number of samples taken
during FSAA rendering may decrease performance.</p>
<p>The following tables describe the possible values for
__GL_FSAA_MODE and the effects that they have on various NVIDIA
GPUs.</p>
<p></p>
<div class="informaltable">
<table summary="(no summary available)" border="0">
<colgroup>
<col>
<col></colgroup>
<thead>
<tr>
<th>__GL_FSAA_MODE</th>
<th>GeForce, GeForce2, Quadro, and Quadro2 Pro</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>FSAA disabled</td>
</tr>
<tr>
<td>1</td>
<td>FSAA disabled</td>
</tr>
<tr>
<td>2</td>
<td>FSAA disabled</td>
</tr>
<tr>
<td>3</td>
<td>1.5 x 1.5 Supersampling</td>
</tr>
<tr>
<td>4</td>
<td>2 x 2 Supersampling</td>
</tr>
<tr>
<td>5</td>
<td>FSAA disabled</td>
</tr>
<tr>
<td>6</td>
<td>FSAA disabled</td>
</tr>
<tr>
<td>7</td>
<td>FSAA disabled</td>
</tr>
</tbody>
</table>
</div>
<p></p>
<p></p>
<div class="informaltable">
<table summary="(no summary available)" border="0">
<colgroup>
<col>
<col></colgroup>
<thead>
<tr>
<th>__GL_FSAA_MODE</th>
<th>GeForce4 MX, GeForce4 4xx Go, Quadro4 380,550,580 XGL, and
Quadro4 NVS</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>FSAA disabled</td>
</tr>
<tr>
<td>1</td>
<td>2x Bilinear Multisampling</td>
</tr>
<tr>
<td>2</td>
<td>2x Quincunx Multisampling</td>
</tr>
<tr>
<td>3</td>
<td>FSAA disabled</td>
</tr>
<tr>
<td>4</td>
<td>2 x 2 Supersampling</td>
</tr>
<tr>
<td>5</td>
<td>FSAA disabled</td>
</tr>
<tr>
<td>6</td>
<td>FSAA disabled</td>
</tr>
<tr>
<td>7</td>
<td>FSAA disabled</td>
</tr>
</tbody>
</table>
</div>
<p></p>
<p></p>
<div class="informaltable">
<table summary="(no summary available)" border="0">
<colgroup>
<col>
<col></colgroup>
<thead>
<tr>
<th>__GL_FSAA_MODE</th>
<th>GeForce3, Quadro DCC, GeForce4 Ti, GeForce4 4200 Go, and
Quadro4 700,750,780,900,980 XGL</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>FSAA disabled</td>
</tr>
<tr>
<td>1</td>
<td>2x Bilinear Multisampling</td>
</tr>
<tr>
<td>2</td>
<td>2x Quincunx Multisampling</td>
</tr>
<tr>
<td>3</td>
<td>FSAA disabled</td>
</tr>
<tr>
<td>4</td>
<td>4x Bilinear Multisampling</td>
</tr>
<tr>
<td>5</td>
<td>4x Gaussian Multisampling</td>
</tr>
<tr>
<td>6</td>
<td>2x Bilinear Multisampling by 4x Supersampling</td>
</tr>
<tr>
<td>7</td>
<td>FSAA disabled</td>
</tr>
</tbody>
</table>
</div>
<p></p>
<p></p>
<div class="informaltable">
<table summary="(no summary available)" border="0">
<colgroup>
<col>
<col></colgroup>
<thead>
<tr>
<th>__GL_FSAA_MODE</th>
<th>GeForce FX, GeForce 6xxx, GeForce 7xxx, Quadro FX</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>FSAA disabled</td>
</tr>
<tr>
<td>1</td>
<td>2x Bilinear Multisampling</td>
</tr>
<tr>
<td>2</td>
<td>2x Quincunx Multisampling</td>
</tr>
<tr>
<td>3</td>
<td>FSAA disabled</td>
</tr>
<tr>
<td>4</td>
<td>4x Bilinear Multisampling</td>
</tr>
<tr>
<td>5</td>
<td>4x Gaussian Multisampling</td>
</tr>
<tr>
<td>6</td>
<td>2x Bilinear Multisampling by 4x Supersampling</td>
</tr>
<tr>
<td>7</td>
<td>4x Bilinear Multisampling by 4x Supersampling</td>
</tr>
<tr>
<td>8</td>
<td>4x Bilinear Multisampling by 2x Supersampling (available on
GeForce FX and later GPUs; not available on Quadro GPUs)</td>
</tr>
</tbody>
</table>
</div>
<p></p>
<p></p>
<div class="informaltable">
<table summary="(no summary available)" border="0">
<colgroup>
<col>
<col></colgroup>
<thead>
<tr>
<th>__GL_FSAA_MODE</th>
<th>GeForce 8xxx, G8xGL</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>FSAA disabled</td>
</tr>
<tr>
<td>1</td>
<td>2x Bilinear Multisampling</td>
</tr>
<tr>
<td>2</td>
<td>FSAA disabled</td>
</tr>
<tr>
<td>3</td>
<td>FSAA disabled</td>
</tr>
<tr>
<td>4</td>
<td>4x Bilinear Multisampling</td>
</tr>
<tr>
<td>5</td>
<td>FSAA disabled</td>
</tr>
<tr>
<td>6</td>
<td>FSAA disabled</td>
</tr>
<tr>
<td>7</td>
<td>4x Bilinear Multisampling by 4x Supersampling</td>
</tr>
<tr>
<td>8</td>
<td>FSAA disabled</td>
</tr>
<tr>
<td>9</td>
<td>8x Bilinear Multisampling</td>
</tr>
<tr>
<td>10</td>
<td>8x</td>
</tr>
<tr>
<td>11</td>
<td>16x</td>
</tr>
<tr>
<td>12</td>
<td>16xQ</td>
</tr>
<tr>
<td>13</td>
<td>8x Bilinear Multisampling by 4x Supersampling</td>
</tr>
</tbody>
</table>
</div>
<p></p>
<h3>Anisotropic texture filtering</h3>
<p>Automatic anisotropic texture filtering can be enabled by
setting the environment variable __GL_LOG_MAX_ANISO. The possible
values are:</p>
<div class="informaltable">
<table summary="(no summary available)" border="0">
<colgroup>
<col>
<col></colgroup>
<thead>
<tr>
<th>__GL_LOG_MAX_ANISO</th>
<th>Filtering Type</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>No anisotropic filtering</td>
</tr>
<tr>
<td>1</td>
<td>2x anisotropic filtering</td>
</tr>
<tr>
<td>2</td>
<td>4x anisotropic filtering</td>
</tr>
<tr>
<td>3</td>
<td>8x anisotropic filtering</td>
</tr>
<tr>
<td>4</td>
<td>16x anisotropic filtering</td>
</tr>
</tbody>
</table>
</div>
<p>4x and greater are only available on GeForce3 or newer GPUs; 16x
is only available on GeForce 6800 or newer GPUs.</p>
<h3>Vblank syncing</h3>
<p>Setting the environment variable __GL_SYNC_TO_VBLANK to a
non-zero value will force glXSwapBuffers to sync to your monitor's
vertical refresh (perform a swap only during the vertical blanking
period).</p>
<p>When using __GL_SYNC_TO_VBLANK with TwinView, OpenGL can only
sync to one of the display devices; this may cause tearing
corruption on the display device to which OpenGL is not syncing.
You can use the environment variable __GL_SYNC_DISPLAY_DEVICE to
specify to which display device OpenGL should sync. You should set
this environment variable to the name of a display device; for
example "CRT-1". Look for the line "Connected display device(s):"
in your X log file for a list of the display devices present and
their names. You may also find it useful to review <a href=
"chapter-13.html" title=
"Chapter&nbsp;13.&nbsp;Configuring TwinView">Chapter&nbsp;13,
<i>Configuring TwinView</i></a> "Configuring Twinview" and the
section on Ensuring Identical Mode Timings in <a href=
"chapter-19.html" title=
"Chapter&nbsp;19.&nbsp;Programming Modes">Chapter&nbsp;19,
<i>Programming Modes</i></a>.</p>
<h3>Disabling CPU-specific features</h3>
<p>Setting the environment variable __GL_FORCE_GENERIC_CPU to a
non-zero value will inhibit the use of CPU-specific features such
as MMX, SSE, or 3DNOW!. Use of this option may result in
performance loss.</p>
<h3>Controlling the sorting of OpenGL FBConfigs</h3>
<p>The NVIDIA GLX implementation sorts FBConfigs returned by
glXChooseFBConfig() as described in the GLX specification. To
disable this behavior set __GL_SORT_FBCONFIGS to 0 (zero), then
FBConfigs will be returned in the order they were received from the
X server. To examine the order in which FBConfigs are returned by
the X server run:</p>
<pre class="screen">
nvidia-settings --glxinfo
</pre>
<p>This option may be be useful to work around problems in which
applications pick an unexpected FBConfig.</p>
<h3>OpenGL yield behavior</h3>
<p>There are several cases where the NVIDIA OpenGL driver needs to
wait for external state to change before continuing. To avoid
consuming too much CPU time in these cases, the driver will
sometimes yield so the kernel can schedule other processes to run
while the driver waits. For example, when waiting for free space in
a command buffer, if the free space has not become available after
a certain number of iterations, the driver will yield before it
continues to loop.</p>
<p>By default, the driver calls sched_yield() to do this. However,
this can cause the calling process to be scheduled out for a
relatively long period of time if there are other, same-priority
processes competing for time on the CPU. One example of this is
when an OpenGL-based composite manager is moving and repainting a
window and the X server is trying to update the window as it moves,
which are both CPU-intensive operations.</p>
<p>You can use the __GL_YIELD environment variable to work around
these scheduling problems. This variable allows the user to specify
what the driver should do when it wants to yield. The possible
values are:</p>
<div class="informaltable">
<table summary="(no summary available)" border="0">
<colgroup>
<col>
<col></colgroup>
<thead>
<tr>
<th>__GL_YIELD</th>
<th>Behavior</th>
</tr>
</thead>
<tbody>
<tr>
<td>&lt;unset&gt;</td>
<td>By default, OpenGL will call sched_yield() to yield.</td>
</tr>
<tr>
<td>"NOTHING"</td>
<td>OpenGL will never yield.</td>
</tr>
<tr>
<td>"USLEEP"</td>
<td>OpenGL will call usleep(0) to yield.</td>
</tr>
</tbody>
</table>
</div>
<p></p>
<h3>Controlling which OpenGL FBConfigs are available</h3>
<p>The NVIDIA GLX implementation will hide FBConfigs that are
associated with a 32-bit ARGB visual when the
XLIB_SKIP_ARGB_VISUALS environment variable is defined. This
matches the behavior of libX11, which will hide those visuals from
XGetVisualInfo and XMatchVisualInfo. This environment variable is
useful when applications are confused by the presence of these
FBConfigs.</p>
</div>
<div class="navfooter">
<hr>
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left"><a accesskey="p" href=
"chapter-10.html">Prev</a>&nbsp;</td>
<td width="20%" align="center"><a accesskey="u" href=
"part-01.html">Up</a></td>
<td width="40%" align="right">&nbsp;<a accesskey="n" href=
"chapter-12.html">Next</a></td>
</tr>
<tr>
<td width="40%" align="left" valign="top">
Chapter&nbsp;10.&nbsp;Allocating DMA Buffers on 64-bit
Platforms&nbsp;</td>
<td width="20%" align="center"><a accesskey="h" href=
"index.html">Home</a></td>
<td width="40%" align="right" valign="top">
&nbsp;Chapter&nbsp;12.&nbsp;Configuring AGP</td>
</tr>
</table>
</div>
</body>
</html>