Un usuario tiene Direct Rendering y los otros No

Publicado por the98, Junio 04, 2009, 11:41:03

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

the98

Buenas, vengo con una interrogante, a ver si la podemos solucionar entre todos.

El problema es sobre el Direct Rendering, resulta que si tengo dos usuarios en ejecución y cambio de un usuario a otro, el primero que se loggea en gdm es que el que tiene DRI, mientras que el otro no tiene y no hay manera de hacer que tenga.

Mi xorg.conf es:

Section "ServerLayout"
Identifier     "X.org Configured"
Screen      0  "Screen0" 0 0
InputDevice    "Mouse0" "CorePointer"
InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
RgbPath      "/etc/X11/rgb"
ModulePath   "/usr/lib/xorg/modules"
FontPath     "/usr/share/fonts/X11/misc"
FontPath     "/usr/share/fonts/X11/cyrillic"
FontPath     "/usr/share/fonts/X11/100dpi/:unscaled"
FontPath     "/usr/share/fonts/X11/75dpi/:unscaled"
FontPath     "/usr/share/fonts/X11/Type1"
FontPath     "/usr/share/fonts/X11/100dpi"
FontPath     "/usr/share/fonts/X11/75dpi"
FontPath     "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
EndSection

Section "Module"
Load  "extmod"
Load  "xtrap"
Load  "record"
Load  "dbe"
Load  "GLcore"
Load  "dri"
Load  "glx"
EndSection

Section "InputDevice"
Identifier  "Keyboard0"
Driver "kbd"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "es"
EndSection

Section "InputDevice"
Identifier  "Mouse0"
Driver      "mouse"
Option     "Protocol" "auto"
Option     "Device" "/dev/input/mice"
Option     "ZAxisMapping" "4 5 6 7"
EndSection

Section "Monitor"
#DisplaySize   340   270 # mm
Identifier   "Monitor0"
VendorName   "BNQ"
ModelName    "BenQ FP71G+"
### Comment all HorizSync and VertRefresh values to use DDC:
HorizSync    31.0 - 83.0
VertRefresh  56.0 - 76.0
Option     "DPMS"
EndSection

Section "Device"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz"
        ### [arg]: arg optional
        #Option     "NoAccel"            # [<bool>]
        #Option     "SWcursor"           # [<bool>]
        #Option     "ColorKey"           # <i>
        #Option     "CacheLines"         # <i>
        #Option     "Dac6Bit"            # [<bool>]
        Option     "DRI"    "True"
        #Option     "NoDDC"              # [<bool>]
        #Option     "ShowCache"          # [<bool>]
        #Option     "XvMCSurfaces"       # <i>
        #Option     "PageFlip"           # [<bool>]
Identifier  "Card0"
Driver      "intel"
VendorName  "Intel Corporation"
BoardName   "82945G/GZ Integrated Graphics Controller"
BusID       "PCI:0:2:0"
EndSection

Section "Screen"
Identifier "Screen0"
Device     "Card0"
Monitor    "Monitor0"
SubSection "Display"
Viewport   0 0
Depth     1
EndSubSection
SubSection "Display"
Viewport   0 0
Depth     4
EndSubSection
SubSection "Display"
Viewport   0 0
Depth     8
EndSubSection
SubSection "Display"
Viewport   0 0
Depth     15
EndSubSection
SubSection "Display"
Viewport   0 0
Depth     16
EndSubSection
SubSection "Display"
Viewport   0 0
Depth     24
EndSubSection
EndSection

Section "DRI"
Mode         0666
EndSection


Tengo Debian Squeeze, con XFCE como escritorio y GDM para administrar mis sesiones.

Ambos usuarios pertenecen al grupo Video.

Hice un par de pruebas sin GDM para ver si se trataba de que GDM no podía administrar correctamente esto. Inicié el sistema sin GDM e ingresé a cada usuario mediante startx y no logré ninguna diferencia. El que primero que inicia sesión es el que logra tener direct rendering, mientras que el otro no.

Pensé que podía ser que se trate de que el no es el primer usuario que se loggea en el sistema el problema, sino el usuario que está en la pantalla 0.

Resulta que haciendo que el primer usuario que se loggea ingrese en la pantalla 1 y no en la 0, con un startx -- :1, este usuario sigue teniendo direct rendering. Mientras que el segundo loggeado en la pantalla 0 NO tiene. O sea que se trata del primer usuario que se loggea y no se trata de en qué pantalla se encuentre.

La salida el glxinfo del usuario que no tiene el Direct Rendering es:

direct rendering: No (If you want to find out why, try setting LIBGL_DEBUG=verbose)



¿Servirá setear la LIBGL_DEBUG en modo verboso? ¿Cómo se setea y cómo veo la salida?

Mis preguntas son... ¿A ustedes les pasa?

Leí por ahí que es imposible que dos o más usuarios tengan DRI, y me parece lógico, sin embargo, ¿no sería lo ideal que GDM administre qué usuario está activo, y por lo tanto le pase las funciones de DRI?

En fin, vamos a ver qué sale...

Saludos.

ZeiterZ

#1
Con nVidia no hay drama. Una sesión gráfica nueva (otro servidor X corriendo) carga sin problema el driver de nVidia y glxinfo informa que Direct Rendering está activado en ambos servidores.

Me parece que lo que tienes que eliminar son las líneas DRI de xorg.conf.

Saludos.

De paso, date una vuelta por aquí: http://www.chw.net/foro/gnu-linux-y-otros-sistemas-operativos-f18/159865-quien-se-raja-con-un-xorg-conf-pa-integrados-intel-965-945-etc.html

the98

No, Z, nada. Y en el link que me pasaste no vi nada al respecto de mi tema...

¿Alguien con intel tiene el mismo problema?

ZeiterZ

Cita de: the98 en Junio 05, 2009, 10:42:38
No, Z, nada. Y en el link que me pasaste no vi nada al respecto de mi tema...

¿Alguien con intel tiene el mismo problema?

Claro, pero fijate en los xorg.conf que pusieron, teniendo la misma placa de video.

Saludos.

the98

Sí, estuve probando con algunas cosas, pero nada...

ZeiterZ


the98

Al final actualicé a Sid... Ahora tengo DRI en todos los usuarios, pero se ve muy lenta la acel. Bah, al menos en el único juego 3D que instalé para probarla tengo unos 3 FPS apróx. Mientras que con glxgears tengo 60, que es un buen número...

Estoy viendo de instalar otro juego para probar. Por cierto que ya reconfiguré el xorg.conf a la nueva versión de X instalada.

Saludos.

ZeiterZ

Tal vez el tema haya sido la propia versión del módulo de video para esa placa Intel.

Probá también con "extremetuxracer" para ver el rendimiento 3D.

Saludos.

the98

#8
La cosa parece que viene compleja, de todas maneras es de los módulos y por eso me voy a quedar en Sid hasta que se arregle.

Ahora hay una nueva biblioteca exclusiva de Intel que se llama "libdrm-intel1". La cuestión debe estar en esa biblioteca, que anteriormente no se encontraba en Testing y que ahora admite hasta dri2.

Más allá de los datos anecdóticos el problema persiste. Probé con otro juego que funciona muy bien. Pero sólo funciona bien con el usuario que se loggueó primero, o sea que el problema persiste pero disfrazado porque los dos tienen DRI, supuestamente.

Creo que tiene que haber una actualización del Kenel y tal vez de Mesa para que todo funcione en orden, porque el xorg.conf lo reconfiguré de acuerdo a la versión de Xorg nueva...

En fin, habrá que seguir esperando.

Saludos.




Efectivamente era el tema del Kernel... Por algún motivo cuando hice el dist-upgrade a Sid no me actualizó el kernel, y después de postear acá se me ocurrió ver si no había una nueva versión. Y sí... Hay que instalar paquete linux-image-2.6.29-5, reiniciar y listo.

Lamentablemente en Debian está muy retrasado el tema de los drivers de Intel, pero al menos este tema ya está solucionado.




SOLUCIONES

Las soluciones son varias, pero las posibilidades trabajando con Debian son:

La del paciente
Quedarse en Testing hasta que se liberen los nuevos drivers.

La del impaciente
Migrar a Sid (unstable). Reconfigurar el xorg.conf a la nueva versión del Xorg porque puede que haya problemas de otra forma. Y si no se instala el kernel nuevo, instalarlo.

Saludos

ZeiterZ

Cita de: the98 en Junio 07, 2009, 14:07:01
Migrar a Sid (unstable). Reconfigurar el xorg.conf a la nueva versión del Xorg porque puede que haya problemas de otra forma. Y si no se instala el kernel nuevo, instalarlo.

Saludos

Generalmente es así. Cuando de módulos y soporte de hardware se trata SÍ o SÍ hay que usar el kernel de la versión que se está usando.

Incluso cuando uno se queda en una versión (digamos testing) a medida que actualiza partes esenciales del sistema es necesario acompañarlos con las actualizaciones del kernel.

Gracias por compartir tu experiencia.

saludos.