Aunque prefiero las tarjetas de video ATI, también suelo usar tarjetas nVidia porque son baratas y fáciles de configurar en Linux. La computadora que utilizo para mis experimentos en mi casa es un servidor Dell PowerEdge SC 430. Originalmente no traía tarjeta de video con aceleración gráfica alguna y muy al principio estuvo bien; pero la verdad es que incluso para los scrolls de las terminales se necesita algo de aceleración. Por esa razón le agregué una modesta pero suficiente FX-5200.

Dell PowerEdge SC 430
Instalación de los controladores propietarios de Nvidia
En Fedora la instalación se hace por medio de yum:
En Ubuntu:
nvidia-glx-config enable
Para que los cambios tomen efecto, es necesario salir de la sesión actual.
Archivo xorg.conf
El archivo xorg.conf (/etc/X11/xorg.conf) tiene varias secciones:
1. Server Layout .
2. Configuración de la pantalla.
3. Configuración del ratón.
4. Configuración del monitor.
5. Configuración de la tarjeta de video.
6. Configuración de los módulos.
7. Configuración de los tipos.
Mi archivo de configuración es el siguiente:
Section "ServerLayout"
Identifier "single head configuration"
Screen 0 "Screen0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
EndSection
Section "Files"
ModulePath "/usr/lib/xorg/modules/extensions/nvidia"
ModulePath "/usr/lib/xorg/modules"
FontPath "unix/:7100"
EndSection
Section "Module"
Load "freetype"
Load "type1"
Load "record"
Load "fdbevhw"
Load "glx"
Load "dbe"
Load "extmod"
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbModel" "pc105"
Option "XkbLayout" "latam"
EndSection
Section "Monitor"
Identifier "Monitor0"
ModelName "Samsung SyncMaster 753DF(X)/703DF(X)/783DF(X)/CD173A(T)"
HorizSync 30.0 - 71.0
VertRefresh 50.0 - 160.0
Option "dpms"
EndSection
Section "Device"
#Option "OpenGLOverlay" "on"
Identifier "Videocard0"
Driver "nvidia"
Option "AllowGLXWithComposite" "True"
Option "RenderAccel" "True"
Option "Coolbits" "1"
#Option "VideoOverlay" "off"
Option "AddARGBGLXVisuals" "True"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Videocard0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1152x864" "1152x768" "1024x768" "800x600" "640x480"
EndSubSection
EndSection
Section "Extensions"
Option "Composite" "Enable"
Option "RENDER" "Enable"
EndSection
A partir de la versión 10 de Fedora, no incluye el archivo xorg.conf. Si se desea usar, una forma de obtenerlo es instalando system-config-display y acceder a él para que nos cree uno de manera automática.
Rendimiento
Una forma fácil pero burda de probar el rendimiento de la aceleración 3D es con el programa glxgears:
En el servidor de mi casa da como resultado:
6955 frames in 5.0 seconds = 1390.953 FPS
Mi Laptop con el chip 4500MHD de Intel obtiene:
6100 frames in 5.0 seconds = 1219.963 FPS
Overclocking
Aunque no soy muy fanático del overclocking para que mi hardware viva más tiempo, hay veces que un 20% o 30% de rendimiento extra puede ser muy útil para sacar un video de muestra o para no quedar mal con las visitas. El overclocking se puede hacer desde la ventana de configurición de la tarjeta nVidia o desde la línea de comandos.
Primero, se necesita agregar la siguiente linea al archivo xorg.conf en la sección device donde se encuentra la tarjeta de video que queremos acelerar:
Desde el programa de configuración de nVidia (Menú->Sistema->Nvidia Display Settings) podemos modificar los parámetros de reloj para hacer el overclocking en la sección de "clock frequencies".

Ventana de configuración
Desde la línea de commando:
Attribute 'GPUOverclockingState' (linux.home:0.0) assigned value 1.
Attribute 'GPU3DClockFreqs' (linux.home:0.0) assigned value 306,514.
Con el overclocking, obtengo:
8663 frames in 5.0 seconds = 1732.444 FPS
que es una mejora cercana al 30%.
Beryl
Si se utilizan drivers propietarios de nvidia se tienen que hacer los siguientes cambios al archivo xorg.conf:
Load "dbe"
Load "extmod"
Load "fbdevhw"
Load "glx"
Load "record"
Load "freetype"
Load "type1"
Load "GLCore"
Load "dri"
EndSection
Section "Screen"
...
DefaultDepth 24
Option "TripleBuffer" "true"
Option "AllowGLXWithComposite" "True"
Option "RenderAccel" "True"
Option "AddARGBGLXVisuals" "True"
...
EndSection
Section "Extensions"
Option "Composite" "Enable"
EndSection
{ 0 comments }