Cómo mejorar el rendimiento de tu tarjeta nVidia en Linux

Si sos de los que utiliza la computadora simplemente para ver tus mails, navegar por internet o editar algún que otro archivo de texto, los drivers libres Nouveau serán más que suficientes. Ahora bien, si lo tuyo son los juegos, la edición de video o la reproducción de películas HD, entonces en ese caso no hay escapatoria: los drivers privativos son la mejor respuesta, por el momento.

Aun así, los drivers privativos no tienen el mismo rendimiento que los de Windows. Para acercarnos un poco más a estos últimos, hace falta cambiar algunas configuraciones.

La configuración que hay que cambiar se llama «PowerMizer». Su función es adaptar el rendimiento de la tarjeta según las necesidades del momento o en base a la fuente de energía eléctrica (la batería o la corriente).

Para tener una idea acabada de lo que estoy diciendo, pueden abrir nvidia-settings desde un terminal y acceder a la pestaña PowerMizer.

nvidia-settings: pestaña para configurar powermizer

nvidia-settings: pestaña para configurar powermizer

Lo ideal sería poder cambiar la configuración de PowerMizer directamente desde nvidia-settings pero, por alguna razón, éste no guarda los cambios. Nuestro objetivo será cambiar la opción Preferred Mode de Adaptive a Prefer Maximum Performance. ¿Cómo conseguirlo? Configurando nuestro archivo de configuración de Xorg.

1. Abrí un terminal y ejecutá:

sudo nano /etc/X11/xorg.conf

o

sudo nano /etc/X11/xorg.conf.d/20-nvidia.conf

según tu preferencia.

2. En la sección Device agregá una línea especificando la configuración de PowerMizer que más se adapte a tus necesidades:

# "adaptive" para cualquier fuente de energía
Option        "RegistryDwords" "PowerMizerEnable=0x1; PerfLevelSrc=0x2233; PowerMizerDefault=0x3"

# batt=max ahorro de energía, AC=max ahorro de energía
Option        "RegistryDwords" "PowerMizerEnable=0x1; PerfLevelSrc=0x3333"

# batt=adaptive, AC=max rendimiento (mi favorita)
Option        "RegistryDwords" "PowerMizerEnable=0x1; PerfLevelSrc=0x3322; PowerMizerDefaultAC=0x1"

# batt=max ahorro de energía, AC=max rendimiento
Option        "RegistryDwords" "PowerMizerEnable=0x1; PerfLevelSrc=0x2222; PowerMizerDefault=0x3; PowerMizerDefaultAC=0x1"

# batt=max ahorro de energía, AC=adaptive
Option        "RegistryDwords" "PowerMizerEnable=0x1; PerfLevelSrc=0x2222; PowerMizerDefault=0x3; PowerMizerDefaultAC=0x3"
Las líneas precedentes son mutuamente excluyentes. O sea, tenés que elegir una y agregarla en la sección Device de tu archivo de configuración de Xorg.

3. En mi caso, como mi compu es una PC (conectada a la corriente), apliqué la segunda opción:

# batt=adaptive, AC=max rendimiento (mi favorita)
Option "RegistryDwords" "PowerMizerEnable=0x1; PerfLevelSrc=0x3322; PowerMizerDefaultAC=0x1"

Mi archivo de configuración completo quedó así.

De esta manera, me aseguré el máximo rendimiento de mi humilde nVidia Geforce 7200.

4. Una vez hechos los cambios, reiniciá.

En caso de que no funcione, algunos usuarios han manifestado que ejecutar…

nvidia-settings -a [gpu:0]/GPUPowerMizerMode=1

…puede corregir el problema. El asunto es que este comando habría que ejecutarlo cada vez que arrancamos la compu. Igualmente, eso tampoco es muy complicado, aunque varía de acuerdo al entorno de escritorio que utilices (KDE, XFCE, etc.).

Para terminar, un último comentario. Es posible que no notes mucha diferencia en el rendimiento al realizar un uso «común y silvestre» (navegar por la web, ofimática, etc.) de tu tarjeta. En mi caso, este truco me ha permitido eliminar el llamado «flickering» o «chopping» en la reproducción de videos HD y un mejor rendimiento en los juegos de Wine.

En una próxima entrega, compartiré un truco adicional para eliminar definitivamente el «flickering» en la reproducción de videos HD sin necesidad de quitar el «compositor» de ventanas Compton.


22 comentarios, deja el tuyo

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   staff dijo

    +1
    Hay que recordar que este cambio también trae con sigo una mayor temperatura y consumo energético.

    1.    staff dijo

      Perdón, *consigo.

    2.    pandev92 dijo

      No gastarás más que el usar nouveau xD.!

      1.    staff dijo

        😀 No hay como defender a los nouveau.

  2.   ErunamoJAZZ dijo

    hmm… ¿podría ser que no guardaba la configuración por no abrir el nvidia-settings con permisos de administrador?

    😛

    1.    cotufo dijo

      A mi sí me guarda el cambio… y sin necesitar permisos de administrador.

    2.    NaOH dijo

      mi primer pensamiento fué exactamente ese

    3.    usemoslinux dijo

      No, no era por eso… ni idea por qué. :S
      Probé con permisos de admin y no funcionó…

  3.   kolo dijo

    ¿Sabes si existe alguna forma de establecer los «Performance levels» para que cuando se ponga a escalar no llegue al más bajo sino entre los tres superiores por ejemplo? De todas formas muy bueno el truco

  4.   Shengdi dijo

    No te compliques, abres el nvidia-settings como administrador y te permite guardar

    gksu nvidia-settings (Gnrome)
    kdesu nvidia-settings (KDE)

  5.   sieg84 dijo

    el cambio lo aplique al xorg.conf, pero en nvidia-settings aún aparece en adaptative, sí toma la opción en cuenta aunque no la tome en nvidia-settings?

    1.    usemoslinux dijo

      En mi caso, la tomó. :S

    2.    usemoslinux dijo

      Probá en hacer los cambios abriendo nvidia-settings como admin o usando el plan b que se detalla en el post.

      1.    sieg84 dijo

        sí igual lo hice como admin, hare como que tomo el cambio,

        gracias.

  6.   x11tete11x dijo

    pienso complementar esto con un script estupido y sensual que causa el mismo efecto xD

    1.    usemoslinux dijo

      Bien!

  7.   truko22 dijo

    Muchas gracias, probando 😀

  8.   Killer_Queen dijo

    Vamos a ver compañeros linuxeros, tengo una Nvidia 8400 GS y uso Debian Stable XFCE. Los juegos que uso en mi Debian son mediante emuladores (Kega Fusion, ZSnes, Mame, Mednafen, PCSX, etc). Instale los drivers de Nvidia segun el tutorial que hay en la wiki de Debian: https://wiki.debian.org/NvidiaGraphicsDrivers#wheezy
    Mis preguntas son: Me merece la pena activar el Prefer Maximum Performance? Se veran mejor los emuladores que uso? Consumiran menos recurso de CPU? Por cierto, mediante el nvidia-settings no se guardan los cambios. Saludos y gracias adelantadas por leerme.

    1.    usemoslinux dijo

      En mi experiencia, sí mejoró… pero me da la impresión de que hay que analizar «caso por caso».
      Con probar no perdés nada.

  9.   Leproso_Ivan dijo

    Esta viene bien para un laptop:

    # batt=max ahorro de energía, AC=max rendimiento
    Option «RegistryDwords» «PowerMizerEnable=0x1; PerfLevelSrc=0x2222; PowerMizerDefault=0x3; PowerMizerDefaultAC=0x1»

    ??

  10.   jony127 dijo

    Hola,

    uso opensuse 12.3, tengo el drivers privativo de nvidia pero no tengo el archivo xorg.conf y el 20-nvidia.conf está en /etc/modprobe.d y sólo contiene una línea de configuración.

    Además si no recuerdo mal, creo haber leído que le archivo xorg.conf ya no se usaba.

    1.    usemoslinux dijo

      No es que no se use, pero no se recomienda.
      En su lugar, se recomienda usar
      /etc/X11/xorg.conf.d/20-nvidia.conf
      como también se explica en el post. 🙂
      Abrazo! Pablo.