Linux Video: mejorando la aceleración de video

Del artículo anterior y de las correcciones a los pequeños bugs del video Intel, descubrí *casí* por accidente la extraordinaria calidad de video que significa usar aceleración y procesamiento de video por hardware.

Como habrán leído en el artículo anterior, se hicieron una serie de cambios en la configuración del video Intel para soportar entre otras cosas:

  • Aceleración nativa UXA
  • 256 MB de video RAM
  • Triple Buffering
  • MTRR y caché de video

La configuración agregada al archivo /usr/share/X11/xorg.conf.d/10-screen.conf es:

Section “Device”
Identifier      “Configured Video Device”
Driver          “intel”
Option          “AllowGLXWithComposite” “true”
Option          “XAANoOffscreenPixmaps” “true”
Option          “AddARGBGLXVisuals”     “True”
Option          “VideoRam”      “262144”
Option          “AccelMethod”    “UXA”
Option          “EXAOptimizeMigration”          “true”
Option          “MigrationHeuristic”            “smart”
Option          “Tiling”                        “true”
Option          “NoDDC”
Option          “BackingStore”  “True”
Option          “AIGLX”  “true”
Option          “MTRR” “on”
Option          “LinearAlloc” “6144”
Option          “MonitorLayout” “CRT,LFP”
Option          “DevicePresence” “true”
Option          “RenderAccel” “true”
Option          “RandRRotation” “on”
Option          “XvMC”          “on”
Option          “TripleBuffer”  “true”
EndSection
Luego de reiniciar el equipo (o al menos las X), reconfiguramos nuestro reproductor de video favorito (al menos mplayer, vlc y xine soportan XvMC).
En mi caso, reconfiguré mplayer para soportar aceleración nativa del video por hardware:

Como verán, hemos seleccionado “gl_nosw” que es aceleración usando openGL y sin software rendering, mplayer enviará el video directamente a la GPU de la tarjeta para su procesamiento, hemos de además habilitar “doble buffering” y “direct Rendering”.

Cuando este lista la configuración, cierran (para que guarde los cambios) y reinician el mplayer.

Para probar la velocidad de reproducción y la “suavidad” de la misma incluso con compiz habilitado, hice un video de demostración.

Hemos ganado además (puesto que usa el plugin vlc) la posibilidad de reproducir videos de youtube (y cualquier flash) a pantalla completa sin “frame drops” (ralentizaciones y pérdida de cuadros).

¡Que disfruten este truco! …

Acerca de phenobarbital

http://about.me/phenobarbital

Publicado el 23 agosto 2010 en Blogeando!, Cultura Libre, La nota del día, Linux, PlanetaLinux, Software Libre, trucos de la abuela y etiquetado en , , , , , , , , , , , . Guarda el enlace permanente. 15 comentarios.

  1. Que tal…

    Tengo una laptop dell “inspiron 6000” que tiene vídeo intel, no tenía el problema que describes en el otro post pero sin embargo creé el archivo “10-screen.conf”, cambie a “gl_nosw” active el D.R y si hubo cierta mejora.

    En los fps antes mostraba 510 ahora muestra 535, y con los vídeos antes consumía entre un 40% o 20% del cpu con algunos vídeos, ahora está entre 25% y 10% incluso menos, ahí si mejoro bastante.

    Escribo porque en alguna parte de tus artículos leí que los fps de tu portátil con vídeo intel eran de 500 y los de tu pc de escritorio con una nvidia tenían fps de 2000, casualmente tengo una pc de escritorio con nvidia y los fps son de 1000 o un poco más, y bueno, como los fps de intel coinciden con los tuyos creo que los de la nvidia también deberían coincidir, o por lo menos parecerse, pero están a la mitad.

    Tengo debian squeeze en ambas maquinas, el driver de nvidia que tengo es el que está en los repos y la configuración está como leí en la wiki de debian, mi pregunta es si pudiera saber que configuración tienes con tu tarjeta nvidia, los pasos que seguiste, o algo así.

    El vídeo de la nvidia no está mal pero creo que debería andar mejor.
    Muy buenos los artículos, saludos….

    • Saludos! …
      Que bueno que te haya mejorado el rendimiento, mucha gente no lo creía, pero realmente el CPU, el consumo, la temperatura y muchas cosas más agradecen el uso de la GPU.
      Mi nvidia por desgracia la tengo en modo *privativo*, es una Gforce GT 8400 SLI con algunos tunnings parecidos específicos para nvidia (driver oficial) ..

      Si llego a postear el screen.conf de la nvidia te aviso! …

  2. Si en realidad ahora con los vídeos la laptop se siente más ligera, como te comente porque bajó el consumo del cpu, gracias por eso.

    La mía es una nvidia Gforce GT 8600 de 256mb, y bueno, desde que la configure la deje tal cual.

    Te lo agradeceré si algún día lo posteas, un saludo.

  3. Hola, gracias por el post es excelente, estube buscando mucho
    pregunto si se puede poner de video solo 128m ya q

  4. Hola, gracias por el post es excelente, hice algo asi en hardy y mejoraba mucho…
    pregunto si se puede poner de video solo 128m ya que tengo solo 1g de ram
    gracias

    • Claro que puedes, si tu BIOS lo soporta, la opcion “videoRAM” es la cantidad de RAM que reserva el kernel Linux para la memoria de video, fijala en 128 MB (claro, la cifra va en bytes)

  5. Hola
    Mirando en el visor de sucesos de ubuntu 10.10 veo que dice :
    Option “AllowGLXWithComposite” is not used
    [ 34940.471] (WW) intel(0): Option “XAANoOffscreenPixmaps” is not used
    [ 34940.471] (WW) intel(0): Option “AddARGBGLXVisuals” is not used
    [ 34940.471] (WW) intel(0): Option “VideoRam” is not used
    [ 34940.471] (WW) intel(0): Option “AccelMethod” is not used
    [ 34940.471] (WW) intel(0): Option “EXAOptimizeMigration” is not used
    [ 34940.471] (WW) intel(0): Option “MigrationHeuristic” is not used
    [ 34940.471] (WW) intel(0): Option “NoDDC” is not used
    [ 34940.471] (WW) intel(0): Option “AIGLX” is not used
    [ 34940.471] (WW) intel(0): Option “MTRR” is not used
    [ 34940.471] (WW) intel(0): Option “LinearAlloc” is not used
    [ 34940.471] (WW) intel(0): Option “MonitorLayout” is not used
    [ 34940.471] (WW) intel(0): Option “DevicePresence” is not used
    [ 34940.471] (WW) intel(0): Option “RenderAccel” is not used
    [ 34940.471] (WW) intel(0): Option “RandRRotation” is not used
    [ 34940.472] (WW) intel(0): Option “CacheLines” is not used
    [ 34940.472] (–) RandR disabled

    A mi parecer no esta teniendo ningun efecto. ¿Se podria hacer algo?
    Bueno es un dato, no se mucho de esto. Gracias

  6. jorge escalona

    Hola que tal ante un gran saludo a tan prestigiosa publicacion tengo un problema con esta configuracion poseo un laptop gateway nv54 con debian squeezee 6.0 amd64, todo su chipset es Intel y el video 945gm si no me equivoco todo marchaba de maravillas y tengo un monton de cosas configuradas en este sistema queria optimizar mi aceleracion grafica ya que al hacer un glxgears no superaba los 295000 FPS, mas lsin embargo los efectos de escritorio KDE corrian descentemente pero el gusanillo inexplugnable de la curiosidad me hizo realizar las modificaciones recomendadas aceleracion UXA, heuristica smart, modifique en el grub y todo tal sus indicaciones al reiniciar sorpresa no poseo modo grafico no se inician las X, entro como root e intento un startx pero me lanza un error al revisar el log de las X me indica un error en la linea 24 de /usr/lib/X11/Xorg.conf.d/05-screen.conf, en esa linea se indica la memoria de video y me dice que el numeroi es erroneo a pesar de que mi equipo posee 256MB de video y un fatal error: No screens found

    Hasta hay todo bien pero al intentar acceder al archivo para realizar modificaciones no lo consigo ni siquiera el directorio /usr/lib/X11/Xorg.conf.d/ la verdad necesito recuperar mis graficas anteriores y la iintegridad de mi equipo por favor tiene idea de como hacerlo dejo captura del error

    http://twitpic.com/4acmru

    • phenobarbital

      El error dice “error parsing config file”, tienes un error en el archivo, sea porque se te fué alguna comilla mal puesta, una comilla erronea (pasa mucho cuando copias directamente desde una página web) … revisa bien ese archivo (y el resto de archivos) para que tengas plena certeza de donde está el error de parsing.

      • Muchísimas gracias por la rápida respuesta pero si a veces hacemos las cosas muy apresuradas el error estaba en la línea 24 que se refiere a la Option VideoRam poseo 256MB de video pero no puedo arrancar con esta linea debí comentarla para recuperar servidor gráfico y si de hecho me faltaban las comillas tengo entendido que el valor se especifica en KB y lo hice pero la verdad no lo acepta por ahora esa linea comentada.

        Por otra parte al hacer glxgears no veo mejoras sustanciales con respecto a mi configuracion anterior no pudiendo superar aun los 300000 FPS poseo debian squezee kde en una arquitectura amd64 por lo que configure smart bueno de todas gracias por el post y por la ayuda nos seguimos leyendo.

  7. Hola quisiera saber si me puedes ayudar:
    Mi hw:
    Laptop Siragon
    Pentium(R) Dual-Core CPU T4200 @ 2.00GHz × 2
    Mobile Intel® GM45 Express Chipset x86/MMX/SSE2
    2G Ram
    Archlinux 32-bit

    Quisiera mejorar la asceleración 3D por que los juegos como urban terror, open arena etc se cierran o me congelan el sistema, estoy seguro que es algo en la configuración y recuerdo que antes con ubuntu 9 podía jugar sin problemas incluso usando Wine. En este momento glxgears me parece muy pocos frames

    Running synchronized to the vertical refresh. The framerate should be
    approximately the same as the monitor refresh rate.
    300 frames in 5.0 seconds = 59.887 FPS
    297 frames in 5.0 seconds = 59.211 FPS
    300 frames in 5.0 seconds = 59.812 FPS

    En la wiki de arch dice:

    UXA sigue siendo una solución sólida, si usted tiene algunos problemas con SNA. Agregue lo siguiente al archivo /etc/X11/xorg.conf o cree el archivo /etc/X11/xorg.conf.d/20-intel.conf :

    Section
    Identifier “Intel Graphics”
    Driver “intel”
    Option “AccelMethod” “sna”
    #Option “AccelMethod” “uxa”
    #Option “AccelMethod” “xaa”
    EndSection

    Siendo entonces etc/X11/xorg.conf.d/20-intel.conf el archivo para esa configuración, lo cierto es que creando el archivo, agregandole esa configuración o la que tu recomiendas acá, no arranca las X y el error es el siguiente:

    [ 14.841]
    X.Org X Server 1.12.4
    Release Date: 2012-08-27
    [ 14.841] X Protocol Version 11, Revision 0
    [ 14.841] Build Operating System: Linux 3.4.8-1-ARCH i686
    [ 14.841] Current Operating System: Linux marcostux-laptop 3.5.3-1-ARCH #1 SMP PREEMPT Sun Aug 26 08:15:06 UTC 2012 i686
    [ 14.841] Kernel command line: BOOT_IMAGE=/vmlinuz-linux root=UUID=e5110bc4-a803-492b-a1e3-40e190636a67 ro quiet
    [ 14.841] Build Date: 27 August 2012 08:08:29AM
    [ 14.841]
    [ 14.841] Current version of pixman: 0.26.2
    [ 14.841] Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.
    [ 14.841] Markers: (–) probed, (**) from config file, (==) default setting,
    (++) from command line, (!!) notice, (II) informational,
    (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
    [ 14.841] (==) Log file: “/var/log/Xorg.0.log”, Time: Thu Jul 17 01:40:00 2008
    [ 14.926] (==) Using config directory: “/etc/X11/xorg.conf.d”
    [ 14.957] Parse error on line 1 of section InputClass in file /etc/X11/xorg.conf.d/10-intel.conf
    The Section keyword requires a quoted string to follow it.
    [ 14.957] (EE) Problem parsing the config file
    [ 14.957] (EE) Error parsing the config file
    [ 14.957]
    Fatal server error:
    [ 14.957] no screens found
    [ 14.957]
    Please consult the The X.Org Foundation support
    at http://wiki.x.org
    for help.
    [ 14.957] Please also check the log file at “/var/log/Xorg.0.log” for additional information.
    [ 14.957]
    [ 14.986] Server terminated with error (1). Closing log file.

    Gracias de antemano

    • Tu respuesta está allí, ahí dice que el fatal error es por un error de parsing (error de análisis del archivo 10-intel.conf) es un error en la línea 1, por lo visto se te olvidó el nombre de la sección “SECTION DEVICE” debería ir en la línea 1.
      Tu laptop la desconozco en detalles, pero *creo* que no es NI Sandy Bridge ni Ivy Bridge, por ende, NO PUEDES usar método de aceleración *SNA*, debes utilizar UXA como método de aceleración y habilitar composite.
      Saludos!

      • Gracias por responder🙂 con uxa glxgears me da 60 fps en cambio con sna 970.490 FPS, y el archivo /etc/X11/xorg.conf.d/20-intel.conf quedó así:

        Section “Device”
        Identifier “Intel Graphics”
        Driver “intel”
        Option “AccelMethod” “sna”
        Option “VideoRam” “262144”
        Option “MigrationHeuristic” “smart”
        Option “MTRR” “on”
        Option “XvMC” “true”
        Option “SwapbuffersWait” “false”
        Option “RenderAccel” “true”
        EndSection

        Bien urban terror se me sigue colgando y el error es el siguiente:

        Sep 14 20:03:43 localhost kernel: [ 541.349961] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed… GPU hung
        Sep 14 20:08:13 localhost kernel: [ 811.459937] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed… GPU hung
        Sep 14 20:08:13 localhost kernel: [ 811.513283] [drm:init_ring_common] *ERROR* render ring initialization failed ctl 0001f001 head 00001000 tail 00000000 start 00001000
        Sep 14 20:08:15 localhost kernel: [ 813.016601] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed… GPU hung

        Aunque aumentó considerablemente el rendimiento sigo teniendo el mismo problema, voy a bajar urban terror de la pagina oficial y también voy a instalar otro juego a ver como me va, gracias por responder.

  8. PD acabo de instalar foobillard y se ve horrible las texturas parpadean😦 https://dl.dropbox.com/u/67738877/Captura.png

  1. Pingback: [Linux] El parche milagroso de Mike Galbraith en acción | Phenobarbital con Soda!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: