PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Freier 3D-Treiber für neuere ATI-Radeon-Karten



Stephanw
04.07.07, 13:22
Ich habe in der Vergangenheit intensiver mit dem so genannten r300-Treiber gearbeitet. Dabei handelt es sich um einen Treiber, der durch reverse engineering entsteht. Das bedeutet, das der binäre Treiber von ATI (auch bekannt unter dem Namen "fglrx") bei seiner Arbeit beobachtet wird; und basierend auf den Erkenntnissen wird dann ein neuer, freier Treiber programmiert. Da er nun schon recht weit fortgeschritten ist, möchte ich ein paar Worte darüber verlieren.

Ältere ATI-Karten bis zur Radeon 9200 benötigen keinen fglrx-Treiber, da ATI damals Spezifikationen dazu bereitgestellt hat, sodass ein freier Treiber geschrieben werden konnte. Die neuere Karten bis hin zur X800 werden zur Zeit experimentell vom r300-Treiber unterstützt. Der Treiber ist meist noch etwas langsamer als der fglrx und bei speziellen Anwendungen kann er den X-Server zum Absturz bringen (passiert aber äußerst selten). Es stellt sich vielleicht die Frage, warum man diesem Treiber überhaupt Aufmerksamkeit zukommen lassen soll, wo es doch den proprietären ATI-Treiber gibt.

-Der ATI-Treiber hat schwerwiegende Bugs, die auch über mehrere Releases nicht beseitigt wurden. Dazu zäht z.B. das Abschalten des Bildschirms beim Wechsel von X auf die Konsole. Oder auch Abstürze des X-Servers nach dem Beenden von 3D-Anwendungen (z.B. sauerbraten). U.v.m. Diese Fehler treten beim freien Treiber in keinster Weise auf.

-Der ATI-Treiber unterstützt die dynamische Taktung manchmal nicht, obwohl die Karte soetwas kann. Dann läuft sie permanent auf voller Leistung und wird immens heiß. Das führt zu einer verkürzten Lebensdauer sowie (nachgemessen) 30 Watt mehr Stromaufnahme aus der Steckdose (X800 GTO). Der freie radeon-Treiber hat dieses Problem nicht und taketet die Karte richtig.

-Der proprietäre Treiber unterstützt wichtige OpenGL-Extensions, die auf einem Linux-Desktop schon länger Standard sind, nicht. Dazu gehört z.B. GL_EXT_TEXTURE_FROM_PIXMAP. Daraus resultiert, das man z.B. keinen 3D-Desktop mit AIGLX und Compiz/Beryl betreiben kann. Diese Komponenten funktionieren mit dem freien Treiber perfekt.

-Der freie Treiber kann als Referenzimplementation für andere Betriebssysteme dienen, auf denen man auch in den Genuß von 3D-Beschleuningung kommen kann. Mit Binärtreibern ist in dieser Hinsicht Niemandem geholfen.

Um mal einen Eindruck zu bekommen, ob man diesen Trieber vielleicht verwenden oder ausprobieren möchte, hier eine aktuelle Liste mit einigen 3D-Anwendungen. Die Tests beziehen sich auf den aktuellen git-Stand des Treibers auf einer X600 pro PCIe (für 28 Euro von eBay) mit einer Auflösung von 1024x768 Pixeln.


Spiele:


-Nexuiz 2.3: Ohne Probleme spielbar, ca 60 - 100 FPS (Bloom und dynamische Schatten müssen ausgestellt werden)
-AssaultCube 0.93: Gut spielbar, leichte Ruckler, wenn Wasser in der nähe ist
-OpenArena: Perfekt, auch bei 1280x1024
-Urban Terror 4: Sehr gut
-Soldier of Fortune 2 Double Helix (wine): Sehr gut
-Counter Strike Source (wine): Gut (mit -dxlevel 70); könnte etwas schneller sein
-BillardGL: Perfekt
-Scorched3D: Befriedigend (die Wasser-Shader bremsen das Spiel leicht aus)
-Sauerbraten/Cube2 (mit -f0): Ausreichend (fehlende OpenGL-Extension macht das Spiel langsam; genau wie Shader)
-Torcs: Gut bis Sehr gut (ca. 70 FPS)


Sonstige Programme


AIGLX mit Compiz/Beryl: Keine Probleme
K3D: Keine Probleme
Wings3D: Keine Probleme
Blender: Unbenutzbar: Läuft, aber Menus sind schwarz
CELstart Demos:
Laufen: Physik-Demo, Castle, Partikeleffekte
Laufen nicht: Shadertest (Vorsicht: X-Server wird crashen)


Das wärs erstmal; wenn es interessante News gibt werde ich sie hier posten.

Gruß Stephan