Zum Inhalt springen

AIGLX

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 26. Mai 2006 um 17:37 Uhr durch 62.47.43.212 (Diskussion). Sie kann sich erheblich von der aktuellen Version unterscheiden.

AIGLX (Accelerated Indirect GL X) ist ein freies Software-Projekt der X.Org-Foundation und des Fedora-Core-Projekts mit dem Ziel, 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.

Im Gegensatz zu Xgl verfolgt AIGLX den Ansatz, den X-Server nicht vollständig zu ersetzen, sondern inkrementell zu verbessern, in dem die einzelnen Komponenten des X-Servers um die notwendige Unterstützung erweitert werden. Dabei wird die bereits bestehende Direct Rendering Infrastructure genutzt. 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 auch 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 genutzt werden können.

Zur Zeit wird AIGLX hauptsächlich von Seiten des Fedora Core Projekts weiter entwickelt. AIGLX soll mit zukünftigen Versionen von Fedora Core ausgeliefert werden. 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.

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 genutzt wird, ist, in einer Netzwerk-neutralen Client/Server-Implementierung ähnlich der 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 hat der X-Server die Verwantwortung mehrere Anwendungen zum Zug kommen zu lassen, hat aber auch die Möglichkeit bei der Verarbeitung der Anweisungen einzugreifen. Beim "direkt 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 auch weniger Eingriffsmöglichkeiten für den X-Server bedeutet.

Der von AIGLX genutzte 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 3D-Window-Managern, auf einem traditionellen X-Server mit einer kleinen GLX-Erweiterung zu laufen anstatt einen vollständigen neuen Xgl-Server zu erfordern. Da AIGLX zusätzlich auch beschleunigtes Remote-Betrachten ermöglicht, und das Aufteilen von OpenGL-Streams zwischen verschiedenen Monitoren und Grafikkarten erlaubt.

Aktuelle Hardwareunterstützung

Zwar wird AIGLX Hardwarehersteller-unabhängig entwickelt, jedoch wurde es bis jetzt nur auf wenigen Grafikkarten erfolgreich eingesetzt. Zu den Karten, die als unterstützt gelten, gehören die ATI Radeon 7000 bis 9250 und die Intel i830 bis i945. Karten des Herstellers Nvidia fehlen bis jetzt auf der Liste der unterstützten Hardware.

Dies ist ein großer Unterschied und Kritikpunkt im Vergleich zum Projekt Xgl, das eine mittlerweile sehr umfangreiche Hardwareunterstützung vorweisen kann.