- AIGLX
-
AIGLX
Würfel-Ansicht eines hardwarebeschleunigten AIGLX-Servers mit Firefox und Amarok.Basisdaten Entwickler X.Org Foundation Betriebssystem X-Window-System-kompatible fedoraproject.org/wiki/RenderingProject/aiglx AIGLX (Accelerated Indirect GL X) ist ein freies Software-Projekt der X.Org-Foundation und Bestandteil des X.Org-Servers. Es wurde vom Fedora-Core-Projekt (heute Fedora) mit dem Ziel entwickelt, Hardwarebeschleunigung für den Linux-Desktop nutzbar zu machen. Das Projekt soll damit ähnlich dem Xgl-Projekt grafische Effekte wie echte Transparenz, stufenlosen Zoom und 3D-Effekte ermöglichen.
AIGLX wird im Rahmen des X.Org-Servers entwickelt und ist seit Version 7.1 fester Bestandteil davon. Damit ist AIGLX in allen Linux-Distributionen enthalten, die den X.Org-Server in dieser Version oder neuer mit sich bringen. Treibende Kraft bei der Entwicklung ist das Fedora-Projekt. Der Grafikkarten-Hersteller NVIDIA hält den Ansatz von AIGLX gegenüber Xgl ebenfalls für sinnvoller und hat angekündigt, AIGLX verstärkt zu unterstützen.
Inhaltsverzeichnis
Vergleich mit Xgl
Im Gegensatz zu Xgl verfolgt AIGLX den Ansatz, den X-Server nicht vollständig zu ersetzen, sondern inkrementell zu verbessern, indem die einzelnen Komponenten des X-Servers um die notwendige Unterstützung erweitert werden. Dabei wird die bereits bestehende Direct Rendering Infrastructure (DRI) benutzt. Dies soll nach Ansicht der AIGLX-Entwickler den Vorteil bringen, dass die Entwicklung in verhältnismäßig kleinen Schritten möglich ist. Technisch bietet es auch insbesondere im Vergleich zu Xgl den Vorteil, dass dann noch ein X-Server gestartet werden kann, wenn keine 3D-Treiber für die Grafikkarte vorliegen, da im Falle des AIGLX-Designs auch 2D-Treiber benutzt werden können.
Arbeitsweise
Es gibt zwei Wege, auf denen ein Window-System einem/mehreren OpenGL-Programmen erlauben kann, mit der Grafikkarte zu sprechen. Der erste Weg, der auch von AIGLX verwendet wird, ist, in einer Netzwerk-neutralen Client/Server-Implementierung ähnlich den X11-Zeichnungs-Routinen einen OpenGL-Befehlsstrom zu spezifizieren. Dieser Weg wird als indirekt bezeichnet, da die Anweisungen zum Zeichnen erst zum X-Server gesendet werden, welcher sie dann an die Grafikkarte weiterleitet. Somit trägt der X-Server die Verantwortung mehrere Anwendungen zum Zug kommen zu lassen, hat aber ebenso die Möglichkeit, bei der Verarbeitung der Anweisungen einzugreifen. Beim direct rendering muss sich die OpenGL-Implementierung selbst um das Scheduling der laufenden OpenGL-Anwendungen kümmern, was in den meisten Fällen weniger Overhead, aber gleichfalls weniger Eingriffsmöglichkeiten für den X-Server bedeutet.
Der von AIGLX benutzte Weg der indirekten Beschleunigung ist zwar orthogonal zur Implementierung des X-Servers selbst, erlaubt aber dem OpenGL-Befehlsstrom, einfacher aufgenommen und zu einer Textur umgeleitet zu werden. Das erlaubt es Compiz und ähnlichen Composition Managern, auf einem traditionellen X-Server mit einer kleinen GLX-Erweiterung zu laufen, anstatt einen vollständigen neuen Xgl-Server zu erfordern. AIGLX ermöglicht zudem beschleunigtes Remote-Betrachten und das Aufteilen von OpenGL-Streams zwischen verschiedenen Monitoren und Grafikkarten.
Aktuelle Hardwareunterstützung
AIGLX wird unabhängig von der Grafikhardware entwickelt und kann mit jeder Grafikhardware genutzt werden. Die Voraussetzung ist, dass die entsprechenden Treiber der Grafikkarte die OpenGL-Erweiterung GLX_EXT_texture_from_pixmap unterstützen. Zu den Karten, die als unterstützt gelten, gehören die ATI Radeon 7000 bis x850 (nur mit dem freien radeon-Treibermodul oder dem ebenfalls freien ati-Treibermodul) und die Intel i830 bis G45. Für Karten des Herstellers NVIDIA existiert seit Oktober 2006 ein Treiber, der AIGLX unterstützt.[1] Die Treiber der Firma AMD unterstützen die nötigen Funktionen seit Version 8.42.3 ihres Treibers.[2]
Dies ist ein großer Unterschied und Kritikpunkt im Vergleich zum Projekt Xgl, das vor allen Dingen mit proprietären Treibern zusammen arbeitet. Dies liegt daran, dass Xgl in der Xglx-Implementierung OpenGL-Erweiterungen (z. B. GLX_EXT_texture_from_pixmap) durch den Prozessor emulieren kann, für AIGLX müssen sie jedoch im Treiber der Grafikkarte implementiert sein.
Weblinks
- Offizielle Webpräsenz (englisch)
- Using the Existing XFree86/X.Org Loadable Driver Framework to Achieve a Composited X Desktop - Papier zur Beschreibung der Grundlagen von AIGLX von NVIDIA (PDF, 290 kB) (englisch)
- Accelerated X flame wars!—Maybe not - Artikel über die Unterschiede von Xgl und AIGLX (englisch)
Quellen
- ↑ Artikel NVIDIA 1.0-9629 Display Drivers auf der Webseite Phoronix.com, aufgerufen 22. September 2006
- ↑ Artikel AMD 8.42 Driver Brings Fixes, AIGLX! auf der Webseite Phoronix.com, aufgerufen 24. Oktober 2007
Wikimedia Foundation.