Titelthema Linux-Magazin 05/06, Seite 42-45 Xgl. OpenGL-beschleunigter Desktop mit Xgl und Compiz. Nicht nur fürs Auge



Ähnliche Dokumente
L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

Zwischenablage (Bilder, Texte,...)

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Anleitung über den Umgang mit Schildern

Mobile Intranet in Unternehmen

WLAN Konfiguration. Michael Bukreus Seite 1

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Anleitung zur Installation des Printservers

NetMan Desktop Manager Vorbereitung und Konfiguration des Terminalservers

Installation Microsoft Lync 2010 auf Linux

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Gruppenrichtlinien und Softwareverteilung

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Ein Buch entsteht. Ein langer Weg

Vorstellung - "Personal Remote Desktop" für (fast) alle Hardwareplattformen und Betriebssysteme

Installationsanleitung für das KKL bzw. AGV4000 Interface

Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken?

Whitepaper. Produkt: combit Relationship Manager. combit Relationship Manager und Terminalserver. combit GmbH Untere Laube Konstanz

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Lizenzierung von SharePoint Server 2013

Übung - Konfigurieren einer Windows 7-Firewall

Kulturelle Evolution 12

bagfa ist die Abkürzung für unseren langen Namen: Bundes-Arbeits-Gemeinschaft der Freiwilligen-Agenturen.

Primzahlen und RSA-Verschlüsselung

Technische Informatik Basispraktikum Sommersemester 2001

Simulation LIF5000. Abbildung 1

Speicher in der Cloud

Informationen zum neuen Studmail häufige Fragen

BILDER TEILEN MIT DROPBOX

Statuten in leichter Sprache

1. Was ihr in dieser Anleitung

Buchhaltung mit WISO EÜR & Kasse 2011

Professionelle Seminare im Bereich MS-Office

S/W mit PhotoLine. Inhaltsverzeichnis. PhotoLine

WinVetpro im Betriebsmodus Laptop

Jederzeit Ordnung halten

Pfötchenhoffung e.v. Tier Manager

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

Die SPD und die Grünen machen im Niedersächsischen Landtag. Alle Menschen sollen in der Politik mitmachen können.

Erfolg im Verkauf durch Persönlichkeit! Potenzialanalyse, Training & Entwicklung für Vertriebsmitarbeiter!

Partitionieren in Vista und Windows 7/8

Projektmanagement in der Spieleentwicklung

Alle Schlüssel-Karten (blaue Rückseite) werden den Schlüssel-Farben nach sortiert und in vier getrennte Stapel mit der Bildseite nach oben gelegt.

Webstream.eu Live Streaming mit ManyCam

Darum geht es in diesem Heft

Lokales Netzwerk Probleme beim Verbinden eines Linux-Clients mit einem Windows 2003 Server Frage:

Programme im Griff Was bringt Ihnen dieses Kapitel?

Informationen zum Ambulant Betreuten Wohnen in leichter Sprache

Drucken aus der Anwendung

Örtliche Angebots- und Teilhabeplanung im Landkreis Weilheim-Schongau

1. Trennlinie mit hr Eine dünne Trennlinie wie die obige in der Regio-Farbe (gelb) kann man recht einfach erstellen. Dafür reicht der Befehl

OpenGL. (Open Graphic Library)

Gutes Leben was ist das?

Dokumentenverwaltung im Internet

Nicht kopieren. Der neue Report von: Stefan Ploberger. 1. Ausgabe 2003

Drucken von Webseiten Eine Anleitung, Version 1.0

Informationsblatt Induktionsbeweis

Flyer, Sharepics usw. mit LibreOffice oder OpenOffice erstellen

Lizenzierung von SharePoint Server 2013

Info zum Zusammenhang von Auflösung und Genauigkeit

Festigkeit von FDM-3D-Druckteilen

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

15 Arten von QR-Code-Inhalten!

GEZIELT MEHR SICHERHEIT MIT 4I ACCESS SERVER & 4I CONNECT CLIENT

AUSBILDUNG eines OBEDIENCE HUNDES

Informatik Kurs Simulation. Hilfe für den Consideo Modeler

Glaube an die Existenz von Regeln für Vergleiche und Kenntnis der Regeln

Dokumentation IBIS Monitor

icloud nicht neu, aber doch irgendwie anders

[Customer Service by KCS.net] KEEPING CUSTOMERS SUCCESSFUL

Neue Arbeitswelten Bürokultur der Zukunft

1. Standortbestimmung

Wenn wir also versuchen auf einen anderen PC zuzugreifen, dann können wir sowohl per Name als auch mit der Adresse suchen.

Geld Verdienen im Internet leicht gemacht

Typo3 - Schulung: Fortgeschrittene I an der Hochschule Emden/Leer

(C)opyright 2009 by Jochen Vajda

Was ist das Budget für Arbeit?

Grundlagen der Theoretischen Informatik, SoSe 2008

Kurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11

Mehr Geld verdienen! Lesen Sie... Peter von Karst. Ihre Leseprobe. der schlüssel zum leben. So gehen Sie konkret vor!

VDW Statistik Portal Häufig gestellte Fragen. Version 1.2 ( Katharina Düngfelder & Markus A. Litters) Vorwort

ZID Hotline

Inhaltverzeichnis 1 Einführung Zugang zu den Unifr Servern Zugang zu den Druckern Nützliche Links... 6

Ihr IT-Administrator oder unser Support wird Ihnen im Zweifelsfall gerne weiterhelfen.

Tutorial about how to use USBView.exe and Connection Optimization for VNWA.

Installation OMNIKEY 3121 USB

Informationssystemanalyse Problemstellung 2 1. Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse:

1 topologisches Sortieren

Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten

Leichte-Sprache-Bilder

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

Lieferschein Dorfstrasse 143 CH Kilchberg Telefon 01 / Telefax 01 / info@hp-engineering.com

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Regelwerk der "Electronical Infrastructure for Political Work"

Präventionsforum+ Erfahrungsaustausch. HANDOUT GRUPPEN-ADMINISTRATOREN Anlage zum Endnutzer-Handbuch. Stand: Änderungen vorbehalten

Die Größe von Flächen vergleichen

Was macht Layer2 eigentlich? Erfahren Sie hier ein wenig mehr über uns.

Viele Bilder auf der FA-Homepage

Nützliche Tipps für Einsteiger

Drägerware.ZMS/FLORIX Hessen

Transkript:

Titelthema Linux-Magazin 05/06, Seite 42-45 Xgl OpenGL-beschleunigter Desktop mit Xgl und Compiz Nicht nur fürs Auge Mit Hilfe von OpenGL lassen sich Grafikoperationen moderner Desktops wesentlich beschleunigen. Der Xgl-Xserver realisiert im Zusammenspiel mit dem Composting-Manager Compiz beeindruckende Effekte. Matthias Hopf Groß war einst die Begeisterung der Mac-Fans, als Apple die Grafikschnittstelle Quartz Extreme vorstellte [1], die Desktop-Effekte mit 3D-Hardware beschleunigt. Demnächst wird Microsofts Windows Vista mit Aero zum Mac aufschließen. In der Unix-Welt hat Novell/SUSE mit Xgl [2] eine vergleichbare Technologie implementiert, die ähnliche Effekte und Bedienkonzepte ermöglicht. 1 Fortschritt Nach längerem Stillstand in der Entwicklung des X-Servers haben die Programmierer in den letzten Jahren neue Funktionen eingebaut, welche die Basis für die neue Xgl-Technologie legten. Moderne Toolkits wie Qt und GTK verwenden bereits etliche dieser neuen Funktionen, ohne dass der Benutzer von Ihrer Existenz weiß. Die beiden wichtigsten Protokollerweiterungen Render und Composite spielen auch für Xgl und Compiz eine wichtige Rolle. Die Render-Erweiterung führt neue Basisprimitive für die Darstellung von Bildern und Polygonen ein, sowie ein neues Glyphensystem für verbesserte Schriftdarstellung. Damit wird insbesondere dem Umstand Rechnung getragen, dass die alten Grafikbefehle - so genannte Core Requests - nicht mehr den Anforderungen moderner Toolkits wie Qt und GTK entsprechen. Alle Primitive lassen sich nun mit Hilfe der Porter-Duff-Operatoren [3] mit den bereits im Framebuffer befindlichen Daten verknüpfen, was unter anderem die Darstellung semitransparenter Flächen (Alpha Blending) und Schriften mit Antialiasing (Pixel Coverage) erlaubt. Gerade von Letzterem machen viele moderne Anwendungen ausgiebig Gebrauch. Das bisher in X verwendete Fenstersystem erlaubt zwar überlappende Fenster, bietet aber keine Möglichkeit, in unsichtbaren Fensterbereiche zu zeichnen und deren Inhalt auf irgendeine Weise darzustellen. Dies ist nur möglich, wenn alle Fenster erst in einen nicht sichtbaren Bereich des Framebuffers gezeichnet werden, um anschließend alle Fenster im sichtbaren Framebuffer zusammenzufügen (Compositing). Genau das macht die Composite-Erweiterung des X-Servers. Das Zusammensetzen aller Fenster zu einem stimmigen Ganzen übernimmt dabei ein externer Prozess, der Composite Manager heißt - analog zum altbekannten Window Manager. Er kann zum Beispiel mit Hilfe der Render-Erweiterung mehrere Fenster semitransparent übereinander zeichnen. Da Compositing und Window Management eng verzahnt sein müssen, werden in Zukunft immer mehr so genannte Compositing Window Manager auftauchen, die beide Prozesse miteinander verschmelzen. 2 Schneller zeichnen Ein weiterer wichtiger Bestandteil des X-Servers, der dringend einer Erneuerung bedarf, ist die Beschleunigungsarchitektur, die für die effiziente Umsetzung der Grafikbefehle auf die Hardware zuständig ist. Die bisher verwendete Architektur XAA ist komplett auf Core Requests zugeschnitten und nur schwer erweiterbar. Daher ist sie am Ende ihrer langen Laufbahn angekommen und muss ersetzt werden. Die am meisten Erfolg versprechenden Alternativen heißen EXA und OpenGL. Während EXA relativ übersichtlich und leicht zu implementieren ist (siehe Artikel in diesem Heft), besitzt OpenGL den Vorteil, eine weit verbreitete Programmierschnittstelle zu sein für die es bereits funktionierende Treiber gibt. Der X-Server muss sich also nicht selbst um die Ansteuerung der Hardware 1

Applikation(en) X11 Protokoll Composite Manager EXT_texture_from_pixmap GLX Protokoll DDX glitz Xserver Mesa / GLX Pixmap Buffer ID Textur ID 3D Desktop Geometrie Kommandos von Xgl OpenGL Textur Bindung Kommandos vom CompMgr gfx Hardware Framebuffer Abbildung 1: Pixel Pipeline eines Composite Managers unter Xgl. Neben dem beschleunigten X-Server Xgl spielt der Composite manager eine wesentlichen Rolle bei der Realisierung der Effekte. kümmern. Außerdem muss in diesem Fall in der fernen Zukunft nur noch eine Schnittstelle zur Grafikhardware gepflegt werden und nicht für XAA/EXA und OpenGL zwei getrennte Systeme. 3 Xgl-Server Xgl ist ein von David Revemann geschriebener Xserver, der seine Grafikausgabe über OpenGL implementiert. Wenn ein Programm Xgl den Befehl schickt, eine Linie zu zeichnen, übergibt Xgl die Endpunkte (Vertices) an das OpenGL-Subsystem, das die entsprechenden Befehle an die Grafikhardware richtet. Trotz OpenGL bleibt bei Xgl das Protokoll gleich, mit dem Applikationen sich an den Xserver wenden, es müssen also keine Programme umgeschrieben werden. Des weiteren beschleunigt die Verwendung von Xgl eben nicht die Ausführung von OpenGL-Programmen, wie oft behauptet wird. Im Gegenteil: Aus technischen Gründen ist zur Zeit nur indirektes Rendering möglich. Alle OpenGL- Befehle werden also über das GLX-Protokoll an Xgl geschickt und erst dort an die Grafikhardware übergeben. Indirektes Rendering ist bei Programmen mit hoher Polygonzahl (Spiele) oder hohem Texturaufkommen (Video) deutlich langsamer als direktes Rendering. Derzeit kann Xgl noch nicht nativ auf die Hardware zugreifen, es muss also auf ein System aufsetzen, das den Framebuffer initialisiert und eine OpenGL-Schnittstelle zur Verfügung stellt. Derzeit ist das der gewohnte Xserver von X.org, das heißt, Xgl öffnet - ähnlich wie Xnest - auf dem Xorg-Server ein Fenster das den gesamten Bildschirm bedeckt. Danach können sich X-Applikationen mit Xgl verbinden, der Standard-X-Server besitzt hingegen während der gesamten Sitzung Xgl als einzigen Client. Die vom Server zu bearbeitenden X11-Befehle sind teilweise relativ komplex, deshalb kapselt eine Zwischenschicht die Anweisungen an OpenGL. Diese Bibliothek namens Glitz ist im Wesentlichen das OpenGL-beschleunigte Backend der Cairo-Bibliothek, einem System für Auflösungs-unabhängige Grafikoperationen. Sobald ein Composite Manager ins Spiel kommt, verkompliziert sich der übliche Aufbau der Grafik- Pipeline. Wie Abbildung 1 zeigt, leitet der Xserver zuerst alle Fensterausgaben in nicht sichtbare Bereiche des Framebuffers um. Ein solcher Speicherbereich entsteht mit Hilfe eines pbuffer oder Frame Buffer Object (FBO). In diesen Speicherbereich werden alle X11-Befehle der Applikation umgeleitet und mit Hilfe von OpenGL gezeichnet. Dies passiert für alle Programme getrennt. 2

Danach zeichnet der Composite Manager alle Fensterinhalte als Texturen auf OpenGL-Objekte. In der Regel sind das Rechtecke, es können aber zum Beispiel für Übergangs-Effekte auch komplexere und dreidimensionale Objekte sein. 4 Compositing Xgl ist also nicht selbst für die atemberaubenden Effekte verantwortlich, von denen in letzter Zeit häufig die Rede war. Es erlaubt aber, einen Composite Manager zu schreiben, der selbst OpenGL-Befehle für die Darstellung der Fenster benutzt. Für den normalen Xserver ist das erstmal nicht ohne weiteres möglich, da OpenGL nicht mit dem zugrundeliegendem Fenstersystem verknüpft ist, also nicht auf die mit Hilfe von X11-Befehlen gezeichneten Fensterinhalte zugreifen kann. Da Xgl intern OpenGL benutzt, kann es die Fensterinhalte dem externen Composite Manager mit Hilfe der Erweiterung GLX EXT texture from pixmap zugänglich machen. Diese Extension stellt dabei nicht der OpenGL-Treiber, sondern Xgl selber zur Verfügung. Der reguläre Xorg-Server bietet diese Erweiterung im CVS seit der Implementation der AIGLX-Erweiterung ebenfalls an, allerdings fehlt in diesem Fall noch die Unterstützung für XVideo und OpenGL auf Anwendungsebene, sowie Teile der beschleunigten Grafikbefehle. Wie erwähnt muss der Composite Manager den Desktop mit Hilfe von indirektem Rendering zeichnen, es werden also alle OpenGL-Kommandos über das GLX-Protokoll an Xgl geschickt und erst dort an die Grafikhardware übergeben. Nur auf diese Weise kann ein anderer Prozess die Texturen benutzen, die ja im Adressbereich von Xgl liegen. Das gleiche Problem betrifft auch alle OpenGL-Anwendungen, da sie in einen nicht sichtbaren Bereich des Framebuffers zeichnen müssen, der ebenfalls im Addressbereich des X-Servers liegt. Einzelheiten dazu finden sich in [4]. 5 Compiz Benutzeroberflächen sind im Allgemeinen für die Bedienung mit der Maus ausgelegt, die ein zweidimensionales Eingabegerät ist. Also ist es naheliegend, die Oberflächen ebenfalls zweidimensional zu gestalten, wofür sich das X-Protokoll beziehungsweise die Render-Erweiterung hervorragend eignen. Auf der anderen Seite ist der Mensch geübt, dreidimensionale Szenen zu verstehen. Die Projektion der Benutzeroberflächen auf eine dreidimensionale Desktop-Welt kann also ebenfalls sinnvoll sein, solange die Interaktion mit nicht-zweidimensionalen Darstellungen von Programmen auf ein Minimum beschränkt bleibt. Echte 3D-Interaktion weist noch eine Reihe technischer Probleme auf und ist typischerweise wenig intuitiv. Die Projektion von zweidimensionalen Pixeldaten auf dreidimensionale Objekte ist die Standardanwendung für OpenGL, also liegt es nahe, auch für den Composite Manager diese 3D-Schnittstelle zu verwenden. Zusätzlich bekommt man Effekte wie die Semitransparenz quasi geschenkt, da sie zum Standardreportoire von OpenGL gehören. Ein solcher Manager wurde nur deshalb nicht schon längst vorgestellt, weil erst die Entwicklung von Xgl die OpenGL-Schnittstelle für Composite Manager verfügbar machte. 6 Desktop in 3D Während einer Sitzung mit Compiz fällt die Tatsache, dass OpenGL für die Ausgabe verwendet wird, erst gar nicht auf. Lediglich Schatten und leicht semitransparente Fensterdekorationen deuten darauf hin. Erst beim Umschalten auf einen anderen virtuellen Desktop springt einem die dreidimensionale Natur des Desktops ins Auge (Abbildung 2). Compiz benutzt eine sehr flexible, aber noch nicht völlig stabile Plugin-Architektur für alle seine Effekte. Ein externes Programm berechnet die Fensterdekorationen und stellt sie Compiz zur Verfügung. Auf diese Weise lassen sich recht einfach Themes oder unterschiedliche Widget-Sätze einbinden. Derzeit existiert ein Dekorationsprogramm für Gnome, das allerdings auch unter KDE funktioniert. 3

Abbildung 2: Compiz schaltet auf einen anderen virtuellen Desktop um 7 Effekte durch Plugins Compiz-Plugins gibt es sowohl fu r die Basisfunktionalita t des Fenster-Managers ( decoration, move, place, resize ) als auch fu r erweiterte Funktionalita t ( cube, scale, switcher ) und Effekte ( fade, minimize, rotate, wobbly, zoom ). Da Plugins mit vergleichbarer Funktion austauschbar sind, kann der Anwender Compiz leicht an die eigenen Wu nsche anpassen. Eine genauere Auflistung der Plugins, ihrer Funktion und ihrer Bedienung findet sich unter [6]. OpenGL-basierte Programme mu ssen sich oft den Vorwurf gefallen lassen, dass ihre einzige Daseinsberechtigung in der Darstellung faszinierender Effekte besteht, dem auf Englisch so genannten Eye Candy. Tatsa chlich erlaubt diese Technik aber auch nu tzliche Entwicklungen im Usability-Bereich fu r sensorisch Behinderte (zum Beispiel mit Hilfe des Zoom-Plugins), und sie ermo glicht die Entwicklung von Selektionshilfen wie Expose (Scale-Plugin), die sich in der Mac-Welt bereits als sehr hilfreich herausgestellt haben. Auch die verkleinerte Darstellung von Anwendungen wa hrend der Applikationswahl (Abbildung 3) ist sehr hilfreich, vor allem wenn sie wa hrend der Auswahl live die derzeitige Programmausgabe zeigt. Obwohl Compiz noch am Anfang seiner Entwicklung steht, ist es bereits recht gut benutzbar. Es fehlen noch einige Features anderer bekannter Fenster-Manager, manche Ausnahmen fu r spezielle Programmtypen sind noch nicht vollsta ndig implementiert, zum Beispiel Miniaturfenster fu r Panels. Bis zur vollsta ndigen Integration in KDE ist deshalb noch etwas Arbeit no tig. 8 Weniger Wartung Ist Xgl nun die Zukunft des X Window Systems? Die Meinung daru ber waren auf der letzten X.org Developers Conference [7] in Santa Clara geteilt. Wa hrend die einen den oft noch schlechten Zustand der Open-Source-Treiber sowie die Unvertra glichkeit von proprieta ren Treibern und GPL anfu hren, empfinden andere OpenGL als die geeignete Grafikschnittstelle und sa hen gerne den kompletten Treibercode aus dem X-Server verbannt. Ein X-Server, der auf der Basis von OpenGL arbeitet, kann auch leichter ein neues, zuku nftiges Protokoll unterstu tzen, das sich nicht mehr um veraltete Grafikprimitive ku mmert und so die Client-Server-Kommunikation verbessert. 9 Was fehlt Ein großer Schwachpunkt von Xgl ist momentan noch die fehlende nativen Hardwareunterstu tzung. Bis auf weiteres ist es auf den Xorg-Server als Zwischenglied angewiesen. Ein experimenteller Ableger namens 4

Abbildung 3: Das Switcher-Plugin mit Livebildern der Applikationen Xegl kann bereits direkt mit der Grafikhardware umgehen, allerdings nur auf R100- und R200-basierten Radeon-Karten, und der genaue Zustand dieses Servers ist unbekannt. Einig scheinen sich alle Beteiligten nur darin zu sein, dass OpenGL-basierten Compositing Window Managern die Zukunft geho rt. Gerade Compiz ko nnte aufgrund seiner flexiblen Plugin-Architektur der Fenster-Manager der Zukunft werden. Derzeit befinden sich Xgl und Compiz in einem zwar relativ stabilen, aber noch fru hem Stadium. Fu r opensuse gibt es bereits Pakete [5], mit denen man die neue Technologie relativ einfach ausprobieren kann. Auch in den aktuellen Snaphots des kommenden Ubuntu-Release Dapper Drake lassen sich Xgl und Compiz installieren. Zum schnellen Ausprobieren bietet sich eine Gentoo-basierte Live-CD an [8]. Mit manchen Treibern la uft das System bereits so stabil, dass man es fu r die ta gliche Arbeit nutzen kann. Weil Xgl nicht alle OpenGL-Erweiterungen an seine Clients weiterleitet, funktionieren jedoch etliche OpenGL-Anwendungen und Spiele bislang noch nicht fehlerfrei. (ofr) Infos [1] Apples Quartz Extreme: http://www.apple.com/macosx/features/quartzextreme [2] Xgl Wiki auf freedesktop.org: http://www.freedesktop.org/wiki/software/xgl [3] T. Porter & T. Duff, Compositing Digital Images, Computer Graphics Volume 18, Number 3, July 1984, S. 253-259 [4] Matthieu Herrb and Matthias Hopf, New Evolutions in the X Window System, OpenBSDCon 05: http://www.openbsd.org/papers/eurobsd2005/herrb-hopf.pdf [5] Xgl-Wiki: http://www.opensuse.org/xgl [6] Compiz-Wiki: http://www.opensuse.org/compiz [7] X.org Developer s Conference: http://wiki.x.org/wiki/xdevconf [8] Live-CD mit XGL: http://getkororaa.com Der Autor Matthias Hopf hat an der Universita t Erlangen Informatik studiert und in der Visualisierungs-Gruppe der Universita t Stuttgart promoviert. Zur Zeit arbeitet er in der SUSE Linux GmbH (Novell) im X11-Team. Von ihm stammen unter anderem Teile der Integration von XVideo in Xgl. 5