• Diff for "Hardware/NVIDIA"
  • Immutable Page
  • Info
  • Attachments
Differences between revisions 14 and 51 (spanning 37 versions)
Revision 14 as of 2007-08-24 20:14:33
Size: 4237
Editor: pool-70-104-174-247
Comment: Restructure, delete redundant and unnecessary content.
Revision 51 as of 2010-07-27 05:24:55
Size: 8348
Editor: 124-169-107-122
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
General nvidia intro goes here This page needs a suitable introductory statement. It also has sections in need of completion.
Line 3: Line 3:
= Available Drivers =
 * '''Legacy''' (1.0.7xxx)
 * '''New Legacy''' (1.0.96xx)
 * '''Latest''' (1.0.97xx - 100.x.x)
<<TableOfContents>>
Line 8: Line 5:
= System Setup = == Supported Cards ==
Line 10: Line 7:
Some stuff about which drivers can run Xorg (NVIDIA) and which can run Xgl: At least 64 MB of VRAM for the graphics card is recommended, even though compiz can run with less, there may be potential problems. The graphics drivers must support at least the X Composite and GL_EXT_texture_from_pixmap OpenGL extensions. Even if the required extensions are not supported by your card's driver, software solutions such as Xgl may be able to provide them though Xgl is very outdated.
Line 12: Line 9:
See '''["Setup"]''' === Tested OK ===
Cards tested to work, driver required, and performance notes:
 * (card / driver / notes)
Line 14: Line 13:
= Additional Configuration = === Compatible Specs ===
Cards theoretically compatible by specs, driver required, and performance notes:
 * (card / driver / notes)

=== Tested FAIL ===
Cards tested to fail, driver(s) tested, and specific failures:
 * (card / driver(s) / notes)

== Available Drivers ==
 * Proprietary '''Latest''' (190.xx)
 * Proprietary '''New Legacy''' (1.0.96xx)
 * Proprietary '''Legacy''' (1.0.7xxx)
 * Experimental Open Source '''Noveau''' driver.

== System Setup ==

For information about whether your driver can be used directly with the X.Org server or must be used with Xgl to provide support for missing functionality, please refer to the '''[[Setup]]''' article.

=== Additional Configuration with the Proprietary Driver ===
Line 17: Line 35:
This option is deprecated.Use it ONLY with 100 series drivers in order to cure the FROZEN Bug if you cannot use the 9755 driver ex. G86 GPU cards {{{
Option "DisableGLXRootClipping" "True" }}}
Not really needed with newer drivers as it is enabled by default at 9746 and newer{{{
Option "RenderAccel" "True" }}}
This option is currently incompatible with SLI and MultiGPU modes.Helps performance{{{
 * The following option improves performance. As of nvidia driver version 1.0-9746, it has been enabled by default. {{{
Option "RenderAccel" "True"}}}
 * The following option is necessary to make window borders visible with nvidia driver versions prior to 100.xx. {{{
Option "AddARGBGLXVisuals" "True"}}}
 * The following option improves performance. It is currently incompatible with SLI and MultiGPU modes. As of nvidia driver version 100.14.09, it has been enabled by default. {{{
Line 23: Line 41:
Use this one with caution it may NOT work on all systems{{{
Option "UseEvents" "False" }}}
 * Use the following option with caution as it may '''not''' work on all systems. {{{
Option "UseEvents" "False"}}}
 * Do NOT use the following option if you have less than 128MB of video memory, and always use it with ''Sync to VBlank'' enabled in {{{nvidia-settings}}} both for OpenGL and XV. {{{
Option "TripleBuffer" "True"}}}
 * Use the following option with caution as it may '''not''' work on all systems, especially with 6 series !GeForce cards (it is known to cause freezes with compiz) but give it a try because it helps performance. It can also break Xinerama. {{{
Option "BackingStore" "True"}}}
 The ''!BackingStore'' option is an option provided by the X.Org server, not specific to the nvidia driver. It is used to enable the server's support for backing store, a mechanism by which pixel data for occluded window regions is remembered by the server thereby alleviating the need to send expose events to X clients when the data needs to be redisplayed. Note that this can significantly increase performance in nVidia !TwinView setups.
  
Line 26: Line 50:
Do NOT use if you have less than 128mb vram and always with Sync2Vblank enabled at nvidia-settings both for OpenGL and XV{{{
Option "TripleBuffer" "True" }}}
{i} For further information about these settings, please refer to the README file of the particular nvidia driver version you are using. It can be found on your hard drive at `/usr/share/doc/NVIDIA_GLX-1.0/README.txt` , or online at `http://us.download.nvidia.com/XFree86/Linux-x86/DRIVER_VERSION_NUMBER/README/chapter-11.html` .
Line 29: Line 52:
Use this one with caution it may NOT work on all systems especially with 6 series GeForce cards(freezes when load beryl-manager) but give it a try because it helps performance. It can also break Xinerama {{{
Option "BackingStore" "True" }}}
The option "BackingStore" is a Xorg option not Nvidia. This option is used to enable the server's support for backing store, a mechanism by which pixel data for occluded window regions is remembered by the server thereby alleviating the need to send expose events to X clients when the data needs to be redisplayed. Note that this can significantly increase performance in nVidia TwinView setups.
=== Setting up nvidia-settings to start on login ===
Line 33: Line 54:
{i} For further documentation on these settings please refer to the readme file of the particular Nvidia driver you are using. Here is the readme for driver 1.0.9755 http://us.download.nvidia.com/XFree86/Linux-x86/1.0-9755/README/appendix-d.html This information is intended to help you start `nvidia-settings` options on login.
Line 35: Line 56:
= Setup nvidia-settings to start on login = We can set ''AA'' and ''FSAA'' settings using an {{{export}}} command in various locations, including the following:
 * manually in a terminal after login
 * in one of the following files:
  * `/etc/init.d/xdm`
  * `/etc/profile`
  * `/etc/env.d/03opengl`
  * `/home/user/.bashrc`
Line 37: Line 64:
This information is intended to help you start nvidia-settings options on login. However, this does not help us with the other options available to us in {{{nvidia-settings}}}, including ''Cursor Shadows'', ''Vibrance Controls'', and others.
Line 39: Line 66:
The fact that we can set AA and FSAA settings using an export command in various locations including manually in a terminal after login or in /etc/init.d/xdm or /etc/profile or /etc/env.d/03opengl or even /home/user/.bashrc, this does not help us with the other options available to us in nvidia-settings, including Cursor Shadows, Vibrance Controls and others. After much searching I have found a solution to this which will enable us to take advantage of all the options in nvidia-settings by executing the settings file itself in our /home/user/.bashrc. To accomplish this of course you will need to have nvidia-settings installed, then using this tool you will need to make the changes you want to the different options. Once this is accomplished you can then edit your local /home/user/.bashrc file and add the following near the top of the file. To address this issue, it is possible to execute the settings file itself from ~/.kde/Autostart or Gnome session manager. To accomplish this, you will need to have `nvidia-settings` installed. It can then be used to set the desired options. Once this is done, create a bash script 'my-nv-settings.sh`. We will use this script to start the nvidia-settings config file without starting the application. Do not use the '>' character in the script.
{{{
>#!/bin/bash
>/usr/bin/nvidia-settings -l &
}}}
Please be aware that the "-l" part is a lowercase "L" and not an uppercase "i". You can also add a third line to verify that the script is actually running 'touch ~/nvidia'. Next time you login this will create an empty file called ~/nvidia. If it is there then you know the script ran and you are ok. Now make the script executable with 'chmod a+x ~/my-nv-settings.sh'. If using KDE simply move/copy the script to ~/.kde/Autostart. If using Gnome you do not need the script. For Gnome simply insert '/usr/bin/nvidia-settings -l &' into Gnome session manager. You must make sure that nvidia options are started before compiz in order for this to work properly.
Line 41: Line 73:
{{{
if [ $DISPLAY ] && [ $TERM == "dumb" ]; then
# Load nvidia-settings
nvidia-settings -load-config-only > /dev/null 2>&1
fi
}}}
Keep in mind this can also be added to `/etc/init.d/xdm` or `/etc/profile` to make the settings global; however, your settings file would also have to be in `/root`, making this second approach less than ideal.
Line 48: Line 75:
Keep in mind this can also be added to /etc/init.d/xdm or /etc/profile to make the settings global. And of course your settings file would have to be in /root. Not the best solution in my opinion for obvious reasons. There is also a ''Texture Filtering'' option in '''[[CCSM]]''' which can be adjusted. From CCSM, go to '''[[GeneralOptions|General Options]]''' -> ''Display Settings'' -> ''Texture Filter'' -> '''Best'''.
Line 50: Line 77:
=== Finding the correct settings for your card ===
Line 51: Line 79:
There is also a Texture Filtering option in CCSM you can activate to take advantage of this. In CCSM go to General Options --> Display Settings --> Texture Filter = "BEST" The environment variables you can set to adjust the behaviour of VBlank syncing, anisotropic filtering, and full-screen anti-aliasing, as well as the meaning of the values you can set, are documented in Chapter 11 of the README file for your driver. It can be found on your hard drive at `/usr/share/doc/NVIDIA_GLX-1.0/README.txt` , or online at `http://us.download.nvidia.com/XFree86/Linux-x86/DRIVER_VERSION_NUMBER/README/chapter-11.html` .
Line 53: Line 81:
Now you may be wondering where do I find the proper settings for my Nvidia card. The vsync, AA and, FSAA settings can be found in the readme file of your driver. Usually in appendix E.
http://us.download.nvidia.com/XFree86/Linux-x86/1.0-9755/README/appendix-e.html

To understand these settings and figure out how best to set them I recommend reading pages 9-11 here.
To understand these settings and figure out how best to set them, pages 9 through 11 of the following guide is recommended:
Line 59: Line 84:
Please understand this is only one solution and not the most elegant but I found it to be a simple solution. (!) When full-screen anti-aliasing is enabled and set to a multisampling mode, you may notice visual corruption when resizing a window.
Line 61: Line 86:
(!) When FSAA is enabled (the {{{__GL_FSAA_MODE}}} environment variable is set to a value that enables FSAA and a multisample visual is chosen), the rendering may be corrupted when resizing the window. === Dynamic TwinView and NVIDIA Xinerama Extensions ===

Xinerama is the method which the X Window System uses to inform the window manager (such as Compiz) about the number and size of multiple monitors. NVIDIA's driver does not use X's native Xinerama implementation; rather, it implements its own Xinerama extensions.

When NVIDIA's Xinerama extensions are working properly, you can maximize windows on one monitor only (instead of across all monitors) and snap windows to the edges between monitors. Also, for plugins with a ''Multi Output Mode'' setting (eg. [[Plugins/Cube|Desktop Cube]], [[Plugins/Expo|Expo]], [[Plugins/Place|Place Windows]], [[Plugins/Scale|Scale]], [[Plugins/Switcher#head-2f5e88d91ec7925a21ed52d6613ebc987f47bc8f|Shift Switcher]]), options to do with using the outputs separately (eg. having one cube per output, or scaling windows on only one output) will work correctly.

However, when X is started with only one active monitor, NVIDIA's driver deactivates its Xinerama extensions. So, if you enable a second screen using "Dynamic !TwinView" via nvidia-settings, windows will maximize across both monitors and you cannot snap windows to the edges between monitors; your entire desktop is treated as being on one monitor.

The only solution is to start X with multiple active monitors. The following option will enable !TwinView on X startup. Even with this option, however, if only one monitor is activated on X startup, Xinerama extensions will be disabled.
{{{{
Option "TwinView" "true"
}}}}
As long as you start X with multiple monitors activated, you may use the "Dynamic !TwinView" features of nvidia-settings and the Xinerama info will update dynamically and work correctly.

This behavior was added to NVIDIA's driver to work around a bug in older versions of the Metacity window manager. They are now aware of the issue and it may be resolved in future versions of their driver.

This page needs a suitable introductory statement. It also has sections in need of completion.

Supported Cards

At least 64 MB of VRAM for the graphics card is recommended, even though compiz can run with less, there may be potential problems. The graphics drivers must support at least the X Composite and GL_EXT_texture_from_pixmap OpenGL extensions. Even if the required extensions are not supported by your card's driver, software solutions such as Xgl may be able to provide them though Xgl is very outdated.

Tested OK

Cards tested to work, driver required, and performance notes:

  • (card / driver / notes)

Compatible Specs

Cards theoretically compatible by specs, driver required, and performance notes:

  • (card / driver / notes)

Tested FAIL

Cards tested to fail, driver(s) tested, and specific failures:

  • (card / driver(s) / notes)

Available Drivers

  • Proprietary Latest (190.xx)

  • Proprietary New Legacy (1.0.96xx)

  • Proprietary Legacy (1.0.7xxx)

  • Experimental Open Source Noveau driver.

System Setup

For information about whether your driver can be used directly with the X.Org server or must be used with Xgl to provide support for missing functionality, please refer to the Setup article.

Additional Configuration with the Proprietary Driver

Some of the following options may be worth trying to improve performance or fix bugs:

  • The following option improves performance. As of nvidia driver version 1.0-9746, it has been enabled by default.

    Option "RenderAccel" "True"
  • The following option is necessary to make window borders visible with nvidia driver versions prior to 100.xx.

    Option  "AddARGBGLXVisuals"  "True"
  • The following option improves performance. It is currently incompatible with SLI and MultiGPU modes. As of nvidia driver version 100.14.09, it has been enabled by default.

    Option "DamageEvents" "True"
  • Use the following option with caution as it may not work on all systems.

    Option "UseEvents" "False"
  • Do NOT use the following option if you have less than 128MB of video memory, and always use it with Sync to VBlank enabled in nvidia-settings both for OpenGL and XV.

    Option "TripleBuffer" "True"
  • Use the following option with caution as it may not work on all systems, especially with 6 series GeForce cards (it is known to cause freezes with compiz) but give it a try because it helps performance. It can also break Xinerama.

    Option "BackingStore" "True"

    The BackingStore option is an option provided by the X.Org server, not specific to the nvidia driver. It is used to enable the server's support for backing store, a mechanism by which pixel data for occluded window regions is remembered by the server thereby alleviating the need to send expose events to X clients when the data needs to be redisplayed. Note that this can significantly increase performance in nVidia TwinView setups.

{i} For further information about these settings, please refer to the README file of the particular nvidia driver version you are using. It can be found on your hard drive at /usr/share/doc/NVIDIA_GLX-1.0/README.txt , or online at http://us.download.nvidia.com/XFree86/Linux-x86/DRIVER_VERSION_NUMBER/README/chapter-11.html .

Setting up nvidia-settings to start on login

This information is intended to help you start nvidia-settings options on login.

We can set AA and FSAA settings using an export command in various locations, including the following:

  • manually in a terminal after login
  • in one of the following files:
    • /etc/init.d/xdm

    • /etc/profile

    • /etc/env.d/03opengl

    • /home/user/.bashrc

However, this does not help us with the other options available to us in nvidia-settings, including Cursor Shadows, Vibrance Controls, and others.

To address this issue, it is possible to execute the settings file itself from ~/.kde/Autostart or Gnome session manager. To accomplish this, you will need to have nvidia-settings installed. It can then be used to set the desired options. Once this is done, create a bash script 'my-nv-settings.sh`. We will use this script to start the nvidia-settings config file without starting the application. Do not use the '>' character in the script.

>#!/bin/bash
>/usr/bin/nvidia-settings -l &

Please be aware that the "-l" part is a lowercase "L" and not an uppercase "i". You can also add a third line to verify that the script is actually running 'touch ~/nvidia'. Next time you login this will create an empty file called ~/nvidia. If it is there then you know the script ran and you are ok. Now make the script executable with 'chmod a+x ~/my-nv-settings.sh'. If using KDE simply move/copy the script to ~/.kde/Autostart. If using Gnome you do not need the script. For Gnome simply insert '/usr/bin/nvidia-settings -l &' into Gnome session manager. You must make sure that nvidia options are started before compiz in order for this to work properly.

Keep in mind this can also be added to /etc/init.d/xdm or /etc/profile to make the settings global; however, your settings file would also have to be in /root, making this second approach less than ideal.

There is also a Texture Filtering option in CCSM which can be adjusted. From CCSM, go to General Options -> Display Settings -> Texture Filter -> Best.

Finding the correct settings for your card

The environment variables you can set to adjust the behaviour of VBlank syncing, anisotropic filtering, and full-screen anti-aliasing, as well as the meaning of the values you can set, are documented in Chapter 11 of the README file for your driver. It can be found on your hard drive at /usr/share/doc/NVIDIA_GLX-1.0/README.txt , or online at http://us.download.nvidia.com/XFree86/Linux-x86/DRIVER_VERSION_NUMBER/README/chapter-11.html .

To understand these settings and figure out how best to set them, pages 9 through 11 of the following guide is recommended: http://www.tweakguides.com/Graphics_1.html

(!) When full-screen anti-aliasing is enabled and set to a multisampling mode, you may notice visual corruption when resizing a window.

Dynamic TwinView and NVIDIA Xinerama Extensions

Xinerama is the method which the X Window System uses to inform the window manager (such as Compiz) about the number and size of multiple monitors. NVIDIA's driver does not use X's native Xinerama implementation; rather, it implements its own Xinerama extensions.

When NVIDIA's Xinerama extensions are working properly, you can maximize windows on one monitor only (instead of across all monitors) and snap windows to the edges between monitors. Also, for plugins with a Multi Output Mode setting (eg. Desktop Cube, Expo, Place Windows, Scale, Shift Switcher), options to do with using the outputs separately (eg. having one cube per output, or scaling windows on only one output) will work correctly.

However, when X is started with only one active monitor, NVIDIA's driver deactivates its Xinerama extensions. So, if you enable a second screen using "Dynamic TwinView" via nvidia-settings, windows will maximize across both monitors and you cannot snap windows to the edges between monitors; your entire desktop is treated as being on one monitor.

The only solution is to start X with multiple active monitors. The following option will enable TwinView on X startup. Even with this option, however, if only one monitor is activated on X startup, Xinerama extensions will be disabled.

Option "TwinView" "true"

As long as you start X with multiple monitors activated, you may use the "Dynamic TwinView" features of nvidia-settings and the Xinerama info will update dynamically and work correctly.

This behavior was added to NVIDIA's driver to work around a bug in older versions of the Metacity window manager. They are now aware of the issue and it may be resolved in future versions of their driver.

Hardware/NVIDIA (last edited 2010-07-27 05:24:55 by 124-169-107-122)