Xgl – Wikipedia

Xgl ist eine veraltete Display-Server-Implementierung, die das X Window System-Protokoll unterstützt, das entwickelt wurde, um moderne Grafikkarten über ihre OpenGL-Treiber zu nutzen, die über OpenGL liegen.[1] Es unterstützt die Hardwarebeschleunigung aller X-, OpenGL- und XVideo-Anwendungen sowie grafische Effekte durch einen Compositing-Fenstermanager wie Compiz oder Beryl. Das Projekt wurde von David Reveman von Novell gestartet und erstmals am 2. Januar 2006 veröffentlicht. Es wurde entfernt[2] vom X.org-Server zugunsten von AIGLX am 12. Juni 2008.

Geschichte[edit]

Xgl wurde ursprünglich auf öffentlichen Mailinglisten entwickelt, aber lange Zeit, bis zum 2. Januar 2006 am meisten[3] Die Entwicklung von Xgl erfolgte hinter verschlossenen Türen. An diesem Tag wurde die Quelle für Xgl wieder für die Öffentlichkeit geöffnet.[4][5] und in freedesktop.org enthalten, zusammen mit umfassenden Umstrukturierungen, um eine größere Auswahl an unterstützten Anzeigetreibern zu ermöglichen. Von Xgl verwendete X-Server-Backends enthalten Xglx und Xegl. Im Februar 2006 erlangte der Server nach einer öffentlichen Anzeige, bei der das Novell-Desktop-Team einen Desktop mit Xgl mit verschiedenen visuellen Effekten wie durchscheinenden Fenstern und einem rotierenden 3D-Desktop demonstrierte, breite Bekanntheit.[6][7][8] Die Effekte wurden zuerst in einem zusammengesetzten Manager namens glxcompmgr implementiert (nicht zu verwechseln mit xcompmgr), der jetzt veraltet ist, da mehrere Effekte ohne eine engere Interaktion zwischen dem Fenstermanager und dem zusammengesetzten Manager nicht angemessen implementiert werden konnten. Als Lösung entwickelte David Reveman Compiz, den ersten richtigen OpenGL-Compositing-Fenstermanager für das X Window System. Später, im September 2006, wurde der Beryl Compositing Window Manager als Gabel des ursprünglichen Compiz veröffentlicht. Compiz und Beryl haben sich bereits im April 2007 zusammengeschlossen, was zur Entwicklung von Compiz Fusion führte.

Backends[edit]

OpenGL gibt nicht an, wie eine Anzeige initialisiert und Zeichnungskontexte bearbeitet werden sollen. Stattdessen werden diese Vorgänge von einer API ausgeführt, die für das native Fenstersystem spezifisch ist. Bisher gibt es zwei verschiedene Backend-Ansätze zur Lösung dieses Initialisierungsproblems. Höchstwahrscheinlich enthält die Mehrheit jedes Backends denselben Code, und die Unterschiede liegen hauptsächlich in den Initialisierungsteilen der Server.

Xglx[edit]

Xglx war das erste Backend, das für diese Architektur implementiert wurde. Es erfordert, dass ein bereits vorhandener X-Server ausgeführt wird, und verwendet GLX, um ein OpenGL-Fenster zu erstellen, das Xgl dann ähnlich wie Xnest verwendet. Dieser Modus ist nur für die zukünftige Entwicklung vorgesehen, da es überflüssig ist, einen X-Server zu benötigen, auf dem Xgl ausgeführt wird.

Auf der XDevConf 2006 (der X-Entwicklungskonferenz 2006) hielt NVIDIA eine Präsentation, in der er argumentierte, dass dies die falsche Richtung sei, da der geschichtete Server die Merkmale der Karten abstrahiert. Dies erschwert fahrerspezifische Funktionen wie die Unterstützung von 3D-Brillen und die Unterstützung von zwei Monitoren erheblich.[9]

Durch das Delegieren der Initialisierung an einen vorhandenen X-Server können sich die Entwickler jedoch sofort auf die Serverfunktionalität konzentrieren, anstatt viel Zeit für die Anbindung an zahlreiche Videohardware aufzuwenden. Derzeit unterstützt Xglx offiziell nicht mehrere Monitore, obwohl dies unter Ubuntu Dapper / ATI / NVIDIA (Twinview) erreicht wurde.

Xegl[edit]

Xegl war ein langfristiges Ziel der X-Server-Entwicklung.[10] Es teilt einen Großteil des Zeichnungscodes mit dem Xglx-Server, aber die Initialisierung des OpenGL-Zeichnungs- und Kontextmanagements wird von der von Khronos entwickelten EGL-API durchgeführt (EGL ist ein fenstersystemunabhängiges Äquivalent zu den GLX- bzw. WGL-APIs, die dies ermöglichen OpenGL-Unterstützung in X und Microsoft Windows). Die aktuelle Implementierung verwendet Mesa-Solo, um OpenGL-Rendering direkt für den Linux-Framebuffer oder DRI für die Grafikhardware bereitzustellen. Stand Juli 2007[update] Xegl kann nur mit Radeon R200-Grafikhardware ausgeführt werden. Die Entwicklung ist derzeit ins Stocken geraten.[11] Es ist wahrscheinlich, dass dies so bleibt, bis sich der Xglx-Server bewährt hat und die Closed-Source-Treiber die EGL-API unterstützen. Dann sollte dies ein transparenter Ersatz für den verschachtelten Xglx-Server sein.

Begründung[edit]

Die Strukturierung des gesamten Renderings auf OpenGL könnte möglicherweise die Entwicklung von Videotreibern vereinfachen. Es beseitigt die künstliche Trennung von 2D- und 3D-Beschleunigung. Dies ist vorteilhaft, da 2D-Operationen häufig nicht beschleunigt werden (was nicht intuitiv ist, da 2D eine Teilmenge von 3D ist).[citation needed]

Es entfernt auch den gesamten treiberabhängigen Code vom X-Server selbst und ermöglicht beschleunigte Composite- und Render-Vorgänge unabhängig vom Grafiktreiber.

Wettbewerber[edit]

Die Hardwarebeschleunigung von 2D-Zeichenvorgängen ist seit vielen Jahren ein gemeinsames Merkmal vieler Fenstersysteme (einschließlich X11). Die Neuheit von Xgl und ähnlichen Systemen ist die Verwendung von APIs, die speziell für das 3D-Rendering entwickelt wurden, um 2D-Desktop-Vorgänge zu beschleunigen. Vor der Einführung des Anti-Aliasing-Zeichnens durch X11 war die Verwendung von 3D-Rendering-APIs für das 2D-Desktop-Rendering unerwünscht, da diese APIs nicht die pixelgenauen Rendering-Garantien ergaben, die Teil der ursprünglichen X11-Protokolldefinition sind.

Hardwarebeschleunigtes OpenGL-Fenster- und Desktop-Rendering, das auf die Verwendung von OpenGL für die Texturzusammensetzung beschränkt ist, wird seit Mac OS X 10.2 in Mac OS X in einer Technologie namens Quartz Extreme verwendet. Quartz 2D Extreme ist eine Erweiterung dieser Funktion und direkter mit Xgl vergleichbar. Wie Xgl bringt Quartz 2D Extreme die OpenGL-Beschleunigung für alle 2D-Zeichenvorgänge (nicht nur für Desktop-Compositing) und wird mit Mac OS X 10.4 ausgeliefert, ist jedoch standardmäßig deaktiviert, bis eine formelle Erklärung der Produktionsbereitschaft vorliegt. Core Animation ist die Erweiterung dieser Bemühungen für Leopard (Mac OS X 10.5).

Es wurden mehrere Desktop-Schnittstellen entwickelt, die auf 3D-APIs basieren, in jüngerer Zeit OpenCroquet und Sun Microsystems ‘Project Looking Glass [1];; Diese nutzen die 3D-Beschleunigung für Software, die in ihrem eigenen Framework erstellt wurde, scheinen jedoch vorhandene 2D-Desktopanwendungen, die in ihrer Umgebung gerendert werden (häufig über Mechanismen wie VNC), nicht zu beschleunigen.

Microsoft hat eine ähnliche auf DirectX basierende Technologie namens DWM als Teil seines Windows Vista-Betriebssystems entwickelt. Diese Technologie wurde erstmals auf der PDC von Microsoft im Oktober 2003 öffentlich gezeigt.

Verfügbarkeit[edit]

Stand Mai 2006[update]Der Xgl X Server (und verwandte Komponenten, einschließlich des Compiz Compositing Managers und der zugehörigen grafischen Konfigurationstools) wird standardmäßig in einer wichtigen Linux-Distribution, SUSE 10.1, ausgeliefert und ist in Frugalware Linux oder SUSE Linux Enterprise Desktop 10 enthalten. Xgl kann ziemlich einfach für Ubuntu 6.06 LTS (Dapper Drake) und 6.10 (Edgy Eft) und für Freespire mit Binärpaketen aus inoffiziellen Repositories einzurichten. Xgl ist auch als überlagertes Paket in Gentoo Linux und als PKGBUILD für Arch Linux verfügbar.

Mandriva Linux 2007 enthält offizielle Pakete zum Ausführen von Compiz mit Xgl und AIGLX. Mandriva bietet drak3d, ein Tool zum Konfigurieren eines 3D-Desktops mit zwei Klicks.

Ubuntu 6.10 “Edgy Eft” und höher verwenden standardmäßig AIGLX, nicht Xgl.

Xgl wurde 2009 aus X11R7.5 entfernt, da es sich um eine nicht gewartete Servervariante handelt.[12]

Siehe auch[edit]

Verweise[edit]

Externe Links[edit]