AIGLX
aus openSUSE, der freien Wissensdatenbank
|
OpenGL-Programme konnten bis vor kurzem nur von der 3D-Hardware beschleunigt werden, wenn sie auf dem lokalen Rechner ausgeführt wurden (Direct Rendering), oder wenn der Xserver den NVIDIA-Binärtreiber verwendet. Um auch die quelloffenen Treiber i810, radeon, etc. zu unterstützen, wurde das AIGLX-Projekt ins Leben gerufen. Das Akronym steht für Accelerated Indirekt GLX, GLX ist dabei das Protokoll für OpenGL-Befehle über eine X11-Verbindung. Deshalb benötigt AIGLX prinzipbedingt 3D-Support in den Treibern. In der Zwischenzeit ist es komplett im X.Org Hauptbaum integriert.
Ein Seiteneffekt von AIGLX ist die Unterstützung von EXT_texture_from_pixmap, der Funktionalität, die von Compositing Window Managern wie compiz benötigt wird - weshalb AIGLX gern auch als Konkurrenzimplementierung zu Xgl gesehen wird, das einen komplett anderen Fokus hat. Diese Unterstützung ist auch dann aktiv, wenn der Xserver (z.B. mangels Treiber) keine 3D-Beschleunigung der Grafikkarte nutzen kann.
Diese Compositing Window Manager können mit Hilfe von Hardware-3D-Beschleunigung neue Effekte auf den Linux-Arbeitsoberflächen ermöglichen, wie beispielsweise echte Transparenz und aufwendige 3D-Effekte, weitere Informationen hierzu gibt es unter compiz.
Da AIGLX keinen eigenen X-Server bereitstellt und es Teil von X.Org ist, lässt es sich nicht so einfach Nachrüsten wie Xgl, sondern nur über neue Ausgaben des X-Servers von X.Org. AIGLX ist ab Ausgabe X11R7.1 im X-Server von X.Org enthalten und somit noch nicht in SUSE Linux 10.0 und 10.1 enthalten, welche noch auf älteren Versionen des X-Servers aufbauen. Der openSUSE-Build-Service stellt jedoch zumindest für SUSE Linux 10.1 Pakete von X11R7.1 bereit, die allerdings nicht offiziell für diese Distribution unterstützt werden. Neuere Distributionsversionen wie openSUSE 10.2 enthalten bereits aktuellere Versionen des XServers (openSUSE 10.2 bspw. X11R7.2rc2) und somit ab Installation Unterstützung für AIGLX. Außerdem kann auch dort immer noch das enthaltene Xgl verwendet werden.
Unterstützte Grafikprozessoren
Grundsätzlich kann EXT_texture_from_pixmap bei allen 2D-Treibern angeboten werden, allerdings wird dann oft nur eine unzureichende Geschwindigkeit erreicht. Vorraussetzung für den Einsatz von AIGLX mit einem 3D-Treiber ist im Unterschied zu Xgl dessen explizite Unterstützung für die OpenGL-Erweiterung. Zur Zeit ist das bei folgenden Treiber der Fall:
- AMD/ATI Radeon 7000 bis X1050 bei Verwendung des freien radeon-Treibers. Welche Karten genau und wie weit vom radeon-Treiber unterstützt werden offenbart ein Blick in man radeon oder ein Besuch im DRI-Wiki
.
Radeon X300 bis HD 2900 werden vom proprietären fglrx-Treiber unterstützt, welcher seit Version 8.42.3 Unterstützung für AIGLX mitbringt.
Der freie Treiber radeonhd für aktuelle Grafikprozessoren von AMD/ATI befindet sich zur Zeit noch in Entwicklung und kann deshalb noch nicht mit AIGLX umgehen. - Intel i830 bis i965 über die quelloffenen und in X.Org integrierten i810-Treiber von Intel.
- NVIDIA-Grafikprozessoren, die vom aktuellen proprietären NVIDIA-Treiber (1.0-9625 und neuer) unterstützt werden. Diese bringen bereits seit langer Zeit Unterstützung für beschleunigtes indirektes Rendering mit, und seit neuestem auch eine eigene Implementierung von EXT_texture_from_pixmap. Sie bringen allerdings auch eine eigene Erweiterung namens NV-GLX mit, weshalb Sie mit diesen Treibern AIGLX nicht zu aktivieren brauchen. Wie Sie NV-GLX aktivieren, erfahren Sie im Artikel über die proprietären NVIDIA-Treiber.
Der freie nouveau-Treiber für NVIDIA-Grafikprozessoren befindet sich zur Zeit noch in Entwicklung und kann noch nicht mit AIGLX umgehen.
Aktivieren von AIGLX
ab openSUSE 11.0
Ab openSUSE 11.0 wird AIGLX auf unterstützter Hardware und bei Einsatz der passenden Treiber automatisch aktiviert, so dass für die Nutzung von Compositing bei Fensterverwaltern wie Compiz und KWin von KDE4 keine weiteren manuellen Änderungen notwendig sein sollten. Funktioniert die Automatik nicht, können Sie versuchen, AIGLX manuell zu aktivieren, so wie es in den folgenden Abschnitten beschrieben wird.
bis openSUSE 10.3
Nachdem Sie ihren X-Server wie gewohnt konfiguriert und die 3D-Unterstütung ihrer jeweiligen Grafikkarte aktiviert haben, geht es nun an die Aktivierung von AIGLX. Sollten Sie vorher Xgl verwendet haben, so vergessen Sie nicht in der Datei /etc/sysconfig/displaymanager den Eintrag DISPLAYMANAGER_XSERVER auf Xorg zurückzusetzen und danach SuSEconfig --module xdm auszuführen.
Abhängig von der verwendeten Grafikkarte müssen für die Aktivierung von AIGLX mehr oder weniger Optionen in der Datei /etc/X11/xorg.conf geändert werden.
Grundsätzlich sind die folgenden Optionen zu setzen, in den darauf folgenden Abschnitten finden Sie die für den jeweiligen Treiber zu setzenden Optionen:
Section "Module" ... Load "glx" Load "dri" Load "dbe" ... EndSection
Section "ServerLayout" ... Option "AIGLX" "on" EndSection
Section "Extensions" Option "Composite" "on" EndSection
Freier Intel-Treiber i810/ intel
Section "Device" ... Option "XAANoOffscreenPixmaps" "true" ... EndSection
Seit Version 2.2.0 benutzt der intel-Treiber standardmäßig EXA, so dass die Zeile oben entfallen kann. Dies kann aber zu erheblichen Geschwindigkeitsverlusten führen (vgl. http://bugs.freedesktop.org/show_bug.cgi?id=13389). In diesem Fall kann man durch folgende Einträge in der /etc/X11/xorg.conf wieder auf XAA zurückschalten:
Section "Device" ... Option "AccelMethod" "XAA" Option "XAANoOffscreenPixmaps" "true" ... EndSection
Freier AMD/ATI-Treiber radeon
Bis Version 6.7.193
Section "Device" ... Option "AccelMethod" "XAA" Option "XAANoOffscreenPixmaps" "true" ... EndSection
Ab Version 6.7.194
Section "Device" ... Option "AccelMethod" "EXA" ... EndSection
Proprietärer AMD/ATI-Treiber fglrx
Vom aktuellen fglrx-Treiber unterstützte Grafikkarten kommen ab Treiberversion 8.42.3 in den Genuss von AIGLX.
Section "Device" ... Option "VideoOverlay" "on" Option "OpenGLOverlay" "off" Option "XAANoOffscreenPixmaps" ... EndSection
Freier NVIDIA-Treiber nv
Der freie NVIDIA-Treiber nv unterstützt keine 3D-Beschleunigung und somit auch kein AIGLX.
Freier NVIDIA-Treiber nouveau
Der freie NVIDIA-Treiber nouveau befindet sich zur Zeit noch in der Entwicklung und kann noch nicht mit AIGLX umgehen.
Proprietärer NVIDIA-Treiber nvidia
Wenn Sie den proprietären Treiber von NVIDIA in Version 1.0-9625 oder neuer verwenden, brauchen Sie AIGLX nicht zu aktivieren, da diese Treiber eine eigene Erweiterung namens NV-GLX mitbringen, welche GLX_EXT_texture_from_pixmap direkt bereitstellt. Wie Sie NV-GLX aktivieren, erfahren Sie im Artikel über die proprietären NVIDIA-Treiber.
Prüfen der Aktivierung
Nachdem Sie ihren X-Server neugestartet haben, sollten Sie einen Blick in das Startprotokoll ihres X-Servers werfen. Sie finden es unter /var/log/Xorg.0.log. Sie können Sich die wichtigsten Zeilen einfach auf der Konsole mit folgender Befehlskombination ausgeben lassen:
grep GLX /var/log/Xorg.0.log
Endgültige Sicherheit über das Funktionieren von AIGLX erhalten Sie allerdings erst, wenn Sie einen kombinierten Fenster- und Überlagerungsverwalter wie Compiz oder Beryl laufen lassen. Weitere Inforamtionen zu deren Installation und Konfiguration finden Sie auf den entsprechenden Wiki-Seiten.
Siehe auch

