DRI haengt das System weg

Dennis Wronka

Soulcollector
Hi Leute, ich hab die Tage mal was rumgespielt da ich ja doch gern 3D-Beschleunigung unter Linux haette, wenngleich ich sie auch nicht zwingend brauche.
Da der offizielle Treiber von ATI (ich hab eine Radeon 9600 Pro) ja bekanntlich nicht das beste Stueck Code ist (und bei mir auch garnicht laedt) dachte ich mir, dass ich mal die OpenSource-Variante aus dem Mesa-Paket nutze. Also hab ich ganz tapfer LibDRM installiert (einen CVS-Snapshot von vor ein paar Tagen), den aktuellen X-Server (7.1) und Mesa 6.5 (mit 6.5.1 wollte der nicht kompilieren, hab auch im Netz gelesen, dass es da Probleme zwischen den beiden gibt). Nun ist im Grunde soweit alles da, ich hab auch OpenGL (ansonsten liefe ja z.B. Blender nicht), nur eben ohne Beschleunigung.
Mesa hab ich natuerlich mit make linux-dri-x86 uebersetzt, und sogar die im DRM-Paket enthaltenen Kernelmodule installiert (obwohl die nicht viel neuer sein duerften als die vom Kernel 2.6.18.2, welche ich, mit dem gleichen Ergebnis, auch getestet habe).

Wenn ich nun in der Config vom X-Server angebe, dass die DRI-Extension geladen werden soll passiert dies scheinbar (laut Logfile) auch, jedoch bleibt der Bildschirm schwarz und nichts geht mehr, vom Reset-Knopf mal abgesehen.

Ich hab jetzt also 2 verschiedene Kernel-Module (vom Kernel selbst und aus dem DRI-Paket) und 3 verschiedene X-Treiber (aus dem X-Paket, aus Mesa 6.5 und aus Mesa 6.5.1) getestet. Alle mit dem gleichen Ergebnis.

Ich hab erst vor Kurzem gelesen, dass der Treiber funktionieren soll. Ich moechte nicht ausschliessen, dass es an meinem System liegt, denn wenn ich mich recht erinnere duerfte in meiner C-Library (2.3.6) ein klein wenig was schiefgelaufen sein bei der Installation (obwohl eigentlich soweit alles laeuft, die genauen Auswirkungen dieser kleinen Fehleinstellung kenn ich also nicht).

Vielleicht hat ja jemand dieses Problem auch mal gehabt und loesen koennen (ohne DRI zu deaktivieren, das kann ich auch und so laeuft mein X-Server auch im Moment ;) ).

Und bevor jetzt das grosse Raten nach Distributionen und Paketverwaltungen anfaengt moechte ich, fuer die die es noch nicht wissen ;) , direkt kundtun, dass ich ein modifiziertes LFS nutze, welches mit Kernel 2.6.15 gebaut wurde und aktuell mit 2.6.18.2 laeuft (die installierten Header sind natuerlich weiterhin die von 2.6.15) und ich zwar sowohl RPM als auch DPKG installiert habe, aber nur um damit mal etwas rumzutesten, die kommen also nicht zum Einsatz. Jegliche Software bei mir (von OpenOffice und Java abgesehen) ist aus dem Source kompiliert (ja, auch KDE).

Im Netz konnte ich dazu bisher nur alten Kram aufstoebern, falls jemand was hat was ich uebersehen hab waer ein Link eine nette Sache, oder halt Leidensberichte welche moeglicherweise sogar eine Loesung beinhalten. :)
Ansonsten werd ich natuerlich auch mal weitersuchen und weiter rumbasteln und bei Erfolg des Raetsels Loesung hier reinbrennen.
 
Hmm, interessanterweise scheint es jetzt zu gehen.
Hab den Kernel nochmal neu gebacken und die Kernel-eigenen Treiber genutzt.
Die DRI-Extension wird geladen, es wird auch erfolgreich auf /dev/dri/card0 zugegriffen (beides war bereits zuvor der Fall), AIGLX wird geladen und ich bekomme folgende Infos:
glxinfo hat gesagt.:
...
direct rendering: Yes
...
OpenGL renderer string: Mesa DRI R300 20040924 AGP 1x x86/MMX+/3DNow!+/SSE TCL
xdriinfo hat gesagt.:

Was noch etwas merkwuerdig sind sind folgende Infos:
glxinfo hat gesagt.:
libGL warning: 3D driver claims to not support visual 0x4b
Xorg.0.log hat gesagt.:
(WW) RADEON(0): Enabling DRM support

*** Direct rendering support is highly experimental for Radeon 9500
*** and newer cards. The 3d mesa driver is not provided in this tree.
*** A very experimental (and incomplete) version is available from Mesa
*** Additional information can be found on http://r300.sourceforge.net
*** This message has been last modified on 2005-08-07.
glxgears scheint aber schonmal schneller zu sein. Werd gleich mal ein paar Programme installieren um die OpenGL-Performance zu testen (z.B. FlightGear) und mal schauen was dabei rumkommt.
Ich bin nur etwas verwundert, denn im Grunde hab ich diese Config schon vorhin gehabt, nur dass die DRI-Treiber im Kernel waren und nicht als Module.

Da jetzt die Extension laedt werd ich hier erstmal auf erledigt setzen und noch weiter rumtesten. Updates dann hier.

Nachtrag:
Der erste Test, mit Stellarium, sieht schonmal gut aus. Stellarium scheint nun ordentlich zu laufen. FlightGear kompiliert noch, und Celestia werd ich auch mal probieren.

Nachtrag 2: Hmm, FlightGear wirft einen SegFault, Celestia kompiliert nicht (da muss ich mal was durch den Code kriechen und gucken) und Doom 3 haengt das System weg. Aber egal, soweit laeuft's schonmal, mal gucken was man da noch machen kann.

Der Grund lag uebrigens scheinbar weder an den Modulen oder dem gewaehlten Treiber, sondern an einer simplen Einstellung im X-Server.
Code:
       Option          "AGPFastWrite"  "yes"
Diese Option muss ich auskommentieren damit es funktioniert.

Nachtrag 3: Die Meldung von glxinfo konnte ich nun loswerden indem ich die Composite-Extension deaktiviert habe. Die brauch ich eigentlich eh nicht, transparente Fenster und sowas sind ja eher Schnickschnack als notwendig.
Doom 3 laeuft jetzt auch ohne das System zu killen, aber eher maessig. Aber ich hab auch mal mit Enemy Territory getestet, und das laeuft bestens. Spiele auf Quake3-Basis sollten also kein Problem darstellen. Morgen werd ich mal Unreal Tournament 2004 testen.
Der Trick hierbei war entweder, dass ich noch ein paar Optionen in der Config auskommentiert hab, oder aber, was ich eher glaube, dass ich nun wieder den DRI-Treiber vom Kernel nutze, und diesmal auch nicht als Modul, sondern statisch im Kernel. Zuvor, mit dem Treiber aus dem DRI-Paket als Modul (der geht ja nur als Modul, obwohl man den sicher auch mit in den Kernel basteln kann, mit etwas Mut und Geschick ;) ), hat sogar Stellarium es geschafft das System aufzuhaengen.
Nun ja, ich komme langsam aber sicher voran. Ich hab nun auf jeden Fall 3D-Beschleunigung, aber noch etwas komisch (obwohl da neukompilieren von ein paar Libs und Programmen helfen koennte), denn Doom 3 laeuft einigermassen (nicht unbedingt fluessig, aber doch besser als Diashow), Enemy Territory laeuft absolut einwandfrei, nur der OpenGL-Screensaver Euphoria (und ich glaub auch ein paar andere Saver) ist langsamer als wenn Oppa seine Urlaubsdias vorfuehrt. Naja, es gibt wichtigeres, auch wenn ich die Matrix doch gern wieder durch Euphoria ersetzen wuerde, da der ja doch einfach nur cool aussieht. :D
 
Zurück