“Black Window” bug en Nvidia Drivers usando Beryl

Inicialmente he estado usando Compiz como manejador de las ventanas pues viene por defecto en Fedora Core 6; FC6 viene con AIXGL como manejador por defecto; entre algunas cosas interesantes es que usa Indirect Rendering (consume mucha mas RAM y hace un uso menos "intensivo" de la memoria de video) hasta los momentos me ha ido bien con aiglx pues para hacerlo funcionar unicamente tuve que agregar esta linea al xorg.conf: Section Device … Option "AddARGBGLXVisuals" "TRUE" … End Section Y presionar el siguiente boton:

Pantallazo-Desktop Effects.png

No he necesitado más!… Y es todo!, aiglx+compiz funcionando en mi portatil.

Pantallazo3.png

La cosa fue completamente distinta con beryl+Eliodoro (no, no es el pana de la esquina que trabaja en la carniceria, es un fork para gnome-metacity de emerald, el decorador de ventanas); Beryl puede trabajar en dos modos, renderizado directo (xgl) o indirecto (aiglx); dichas opciones se pasan por parametros al beryl y/o se pueden escoger al momento de compilar cual es la opcion por defecto; sin embargo, la version de beryl para FC6 viene con renderizado directo, lo cual nos lleva a un bug del driver nvidia:

nocontent.png

Observen que la tercera ventana no se renderiza (a veces no sale transparente sino negra) al parecer le pasa mas generalmente a mi tarjeta 6200 con turbocache, el driver para linux no sabe manejar la memoria de video y la NVRAM queda exhausta en una o dos ventanas maximo (sobre todo si abres firefox); es un fallo tecnico que algo tan simple como usar la memoria de video sea tan complicado para un driver nvidia; esto NO sucede en windows, claro!, eso les da dinero, un proyecto GNU no, de tal manera que esperemos en un futuro una correccion, al menos hay una aceptacion del bug: Esto esta colocado en una pagina de nvidia: — This is a shortcoming of the current implementation of GLX_EXT_texture_from_pixmap in the drivers. When video RAM has been exhausted, the driver does not behave well (you get blank windows). TurboCache memory is currently cannot be used with GLX_EXT_texture_from_pixmap, so these problems will be especially noticeable on these parts. We’re working on improving these cases. — El hecho reside en el turbocache, con solo 128MB de nvram; mucho de ello dedicado al turbocache y con un driver que no sabe usar el turbocache, es evidente que la memoria de video se consume rapidamente; tal vez no me pase lo mismo en la 7300 PCI-E de 256MB de mi desktop (que tiene mas video y no posee turbocache); le estoy instalando gentoo y espero (solo espero) que el beryl vaya mucho mejor GLX_EXT_texture_from_pixmap! … ese es el bug, hasta la fecha (driver 9742) no ha sido solucionado ni existe patch para el error, un truco puede ser descargar NVRAM minimizando ventanas que no uses para liberar un poco de memoria de video; la otra opcion es iniciar beryl (y no beryl manager directamente) con las opciones: — beryl –indirect-rendering –force-nvidia –force-aiglx

dosventanas.png Esto me ha permitido correr más efectos (pero sin acceder al emerald decorator, pues no he cargado el beryl-manager sino unicamente beryl). pero esto tampoco es una solucion, hacer renderizado indirecto causa un consumo excesivo de RAM (en mi caso, tengo 1GB, no es tan problematico) pero muchos usuarios se quejan de ello. El otro inconveniente de cargar de esta manaera el beryl es que no puedes hacer uso del beryl-manager para cambiar opciones. El unico problema con esto es que parece mas un error conceptual de diseño del driver que un bug de programacion, por lo que no lo veremos corregido hasta un release mayor (prometido para la version 98xx del driver segun fuentes de nvidia) asi que mientras tanto debo llenar mi xorg.conf de varias opciones (innecesarias si nvidia trabajara bien) y para poder controlar de una manera u otra los efectos de beryl, he aqui parte de mi seccion device: #opciones especificas de beryl/aiglx Option "AddARGBGLXVisuals" "TRUE" Option "RenderAccel" "TRUE" Option "AllowGLXWithcomposite" "TRUE" Option "XAANoOffscreenPixmaps" "yes" Option "RandRRotation" "TRUE" Option "DisableGLXRootClipping" "TRUE" Option "TripleBuffer" "TRUE" Option "XAANoOffscreenPixmaps" "TRUE" Bueno, posteo algunos efectos:

screenberyl.png

Cubo:

cube.png

Shadows:

w1.png
 
Para quien haya sufrido los mismos errores, espero esto le ayude un poco.

Acerca de phenobarbital

http://about.me/phenobarbital

Publicado el 8 diciembre 2006 en Linux, PlanetaLinux. Añade a favoritos el enlace permanente. 2 comentarios.

  1. Sabes que al final solo lo pude solucionar con un tip que encontré en este sitio:

    http://www.miscdebris.net/blog/2007/04/26/workaround-for-black-window-bug-using-beryl-on-kubuntu/

    “An easy fix for this problem is, right click on the red diamond (Beryl manager) in the system tray and choose â??Advanced Beryl Options->Rendering Path->Copyâ?. This should have an effect on the performance but at least it works🙂.”

  2. Recomendable:
    Not use cow
    Indirect Rendering
    use AIGLX
    Mode Strict
    En las opciones avanzadas de Beryl … tiene un impacto en el rendimiento …

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: