Xgl

Xgl ist eine Implementierung des X-Window-Systems, die durch OpenGL hardwarebeschleunigt ist. Sie befindet sich gegenwärtig in der Frühphase ihrer Entwicklung.
Die Entwicklung der Xgl-Architektur wurde Ende 2004 durch den Novell-Mitarbeiter David Reveman bekannt gegeben. Der Quellcode wurde am 2. Januar 2006 geöffnet und in das freedesktop.org-Projekt einbezogen. Im Zuge dessen wurde die Programmstruktur stark umgestellt, um die Aufnahme zusätzlicher Grafiktreiber zu erleichtern.
Xgl soll auf dem Linux-Desktop zusätzliche Effekte wie Transparenz, Schattierungen oder Animationen ermöglichen, welche die 3D-Funktionen moderner Grafikkarten ohne zusätzliche Belastung des Prozessors ausnutzen. Gegenwärtig verfügen die meisten PCs über entsprechende Karten, jedoch bieten viele Hersteller keine Open-Source-Treiber für die unterstützten Plattformen an.
Technisch gesehen wird in einem normalen, klassischen X-Server ein Fenster gestartet, in dem OpenGL die direkte Kommunikation mit der Grafikkarte erlaubt wird. Dieses Fenster verhält sich dem Window-Manager und anderen Programmen gegenüber als der eigentliche X-Server. Die Ausgabe des Fensters ist auch das, was dem Nutzer auf den Bildschirm ausgegeben wird.
Compiz

Im Zuge der Entwicklung des Novell Linux Desktop 10 wurde mit Compiz ein erster, experimenteller Composition Manager entwickelt, der die neuen Möglichkeiten von Xgl demonstriert. Eine wichtige Besonderheit von Compiz ist, dass es neben der Compositing-Funktionalität gleichzeitig auch als Windowmanager fungiert. Es ersetzt derzeit standardmäßig in einer Desktop-Umgebung den entsprechenden Windowmanager. In Compiz sind bereits Beispielanwendungen wie Transparenz, 3D-Anordnung virtueller Desktops, Live-Vorschau von Fenstern, stufenloses Zoomen und physikalische Eigenschaften für Fenster (auch als "Wobbly"-Effekt bezeichnet) realisiert.
Xglx
Xglx war das erste Backend, das für Xgl implementiert wurde und nimmt derzeit den Hauptteil der Entwicklungsarbeit ein. Es setzt einen bereits existierenden X-Server mit GLX voraus. Xgl soll in der Zukunft jedoch nicht auf einem X-Server laufen, sondern mit Xegl seine eigene Server-Implementierung erhalten.
Xegl
Mit Xegl existiert ein langfristiges Ziel in der X-Entwicklung. Xegl ist ein Server, der via OpenGL direkt in den Framebuffer schreibt, wobei die EGL-API sowie das freie Mesa 3D verwendet werden. Im August 2005 läuft Xegl lediglich auf Grafikkarten mit dem ATI Radeon R200-Chip.
Mit Xegl soll die gesamte Grafikdarstellung über OpenGL erfolgen, sodass aktuelle Grafiktreiber einfacher konzipiert werden können. Diese sind derzeit in einzelne Teile für 2D- und 3D-Beschleunigung aufgespalten, was durch eine solche Vereinfachung entfallen würde. Ferner wird sämtlicher Quelltext, der vom Grafikkartentreiber abhängig ist, aus dem X-Server entfernt. So ist das Rendering des Servers unabhängig vom X-Server.
NVidia und ATI haben signalisiert, dass sie im Falle eines stabilen API binäre Treiber für OpenGL-basierende X-Server veröffentlichen würden.
Alternativen
Mit dem vom Fedora-Projekt initiierten AIGLX existiert eine weitere Variante für Linux und andere Unix-Plattformen.
Hardwarebeschleunigte 2D-Darstellung ist bereits unter dem Namen "Quartz 2D Extreme" in Mac OS X 10.4 enthalten. Das kommende Windows Vista wird eine ähnliche Technik enthalten.
Weblinks
- Novell: Xgl - Releaseinformationen, Download, Videos und Screenshots u.a.
- Ankündigung Revemans auf der Xorg-Mailingliste (englisch)
- Kororaa, eine auf Gentoo_Linux basierende Live-CD mit Xgl (englisch)
- David Revemans Video Die wohl bekannteste Demonstration Compiz' und Xgls mit spektakulären Effekten (englisch)
- Xgl (englisch)
- Xegl (englisch)