Xgl
Inhoud
Inleiding
Xgl is een nieuwe X-server-architectuur gelaagd op OpenGL. Xgl kan complexe grafische operaties -- zoals het renderen van antialiased lettertypen merkbaar sneller uitvoeren dan de beschikbare X-servers die geen OpenGL gebruiken. De huidige implementatie is Xglx, maar de toekomstige implementatie van Xgl zal Xegl zijn.
Belangrijker is dat Xgl complexe composite-operaties versnelt, wat het mogelijk maakt om nieuwe indrukwekkende visuele effecten te maken met OpenGL-verbeterde composite-/windowmanagers zoals compiz. Deze visuele effecten hebben een breed toepassingsgebied, zoals Linux beter toegankelijk maken voor slechtziende gebruikers en het creëren van een werkplek die eenvoudiger te begrijpen en te navigeren is voor minder ervaren gebruikers.
Xgl kan worden gebruikt in combinatie met een composite-/windowmanager om alle capaciteiten toe te passen. Compiz is een composite-manager die samen met Xgl is ontwikkeld.
Het is mogelijk dat toekomstige grafische hardware alleen 3D-operaties ondersteunen, zonder een 2D-kern. Alleen al vanwege die reden is Xgl een belangrijke stap vooruit voor alle besturingssystemen die afhankelijk zijn van het grafische X.org-fundament.
Xgl in opensource
Begin 2006 heeft Xgl-onderhouder David Reveman de laatste verbeteringen aan Xgl en Compiz ingediend bij freedesktop.org om ze bij dit project in te sluiten. Vandaag de dag host freedesktop.org de broncode van de Xgl-pakketten.
Xgl/Compiz gebruiken
Voor meer informatie over hoe u Xgl onder SUSE Linux kunt gebruiken, lees het artikel Xgl op SUSE. Voor meer informatie over de composite-manager, lees het artikel Compiz. Als u problemen tegenkomt kijk dan bij het artikel Xgl-probleemoplossing.
Vraag en antwoord (FAQ)
- Kan ik <voeg uw favoriete windowmanager in> samen met Compiz gebruiken?
Nee, Compiz is een windowmanager en er kan maar een tegelijk draaien. Alhoewel composite-manager en windowmanager twee verschillende concepten zijn moeten deze twee voor veel effecten strak met elkaar zijn geïntegreerd. Dat is alleen mogelijk met behulp van zogenaamde compositing windowmanagers. Compiz is zo'n type windowmanager. - Hoe zit het dan met glxcompmgr.rpm en xglx.rpm?
Beide zijn inmiddels afgeschreven. - Directe rendering werkt niet als ik Xgl gebruik, maar wel met Xorg. Waarom worden OpenGL-programma's niet versneld?
- Verwar hardwareversnelling niet met direct rendering. OpenGL-programma's hebben hardwareversnelling onder Xgl als het stuurprogramma pBuffers of FBOs ondersteunt. De stuurprogramma;s nvidia en fglrx bieden deze ondersteuning. Direct rendering is momenteel onmogelijk om te implementeren. De benodigde extensies voor het implementeren van deze functionaliteit zijn momenteel zelfs niet gespecificeerd, laat staan geïmplementeerd.
Direct rendering impliceert hardwareversnelling, maar niet andersom. Direct rendering is iets sneller dan indirect rendering, maar indirect rendering is niet zo slecht als het klinkt. - Hoe kan ik controleren of ik direct rendering onder Xorg heb?
Direct rendering is actief als het uitvoeren van glxinfo|grep direct onder Xorg (niet Xgl!) "Yes" als uitvoer geeft. Onder Xgl geeft dit commando altijd "No". Helaas is bij Xorg het hebben van direct rendering een synoniem voor het hebben van versnelde grafische hardware en is het moeilijker om te detecteren of hardwareversnelling beschikbaar is dan om direct rendering te detecteren. - Hoe kan ik controleren of mijn kaar pBuffers of FBOs ondersteunt?
Als u Xgl draait, controleer de formaten die worden opgesomd in /var/log/Xgl.0.log, respectievelijk onder "pbuffer formats:" en "fbo formats:". Als er enkele in staan, dan ondersteunt uw stuurprogramma de bijhorende modus. U kunt ook glxinfo aanroepen en te zoeken naar GLX_SGIX_pbuffer in de sectie "GLX extensions:" (niet client of server glx-extensies) en voor GL_EXT_framebuffer_object in de sectie tt>"OpenGL extensions:"</tt> - Kan ik de boven- en onderzijde van de kubus als bureaublad gebruiken?
Nee. Dat is niet zinvol omdat de boven- en onderzijde vierkant zijn terwijl uw scherm een rechthoekige beeldverhouding heeft. Dat zou ook betekenen dat u het bijhorende bureaublad kunt selecteren en een gedraaid beeld kunt krijgen (te vergelijken met omhoog bewegen ten opzichte van naar links of rechts bewegen). U kunt het aantal kubuszijden aan de zijkanten verhogen door de optie apps/compiz/general/screen0/options/size te wijzigen. - Hoe kan ik meerdere beeldschermen gebruiken in combinatie met Xgl?
Xgl en Compiz bieden nu ondersteuning voor de Xinerama-extensie. Hoe u dit kunt instellen is nog niet gedocumenteerd. - Dit alles is onderdeel van Xorg 7?
Nee, Xgl wordt ontwikkeld binnen de Xorg-gemeenschap, maar in een aparte tak. Het samenvoegen van beide takken gebeurt waarschijnlijk na de uitgave van Xorg 7.2 - Hoe kan ik composite activeren in het configuratiebestand?
Dat is niet nodig, Xgl biedt standaard ondersteuning voor composite. De onderliggende Xorg-omgeving hoeft composite dus niet te exporteren. Dit is belangrijk voor bijv. het nVidia-stuurprogramma, dat nog steeds enkele problemen kent met het gebruiken van OpenGL en composite tegelijk. - Hoe kan ik de vouw-artefacten verwijderen?
Dit is een complex probleem dat apart dient te worden behandeld. Lees: dit moet nog worden uitgelegd/opgelost.
Technische achtergrond
Xgl en Compiz zijn beide hoofdzakelijk gecreëerd door David Reveman (Novell) met enkele toevoegingen van Dan Winship en Matthias Hopf (SUSE). Dave Arlie, Adam Jackson (Red Hat) en Jon Smirl werkten aan de stand-alone Xegl. Dit programma wordt hier niet beschreven, maar is gerelateerd aan Xgl. Xgl gebruikt de glitz-API als abstractielaag. Deze is ontworpen en geïmplementeerd door David Reveman en Peter Nilsson (UMU).
Xgl is een schil voor diverse verschillende smaken, waarbij de glx-backend (ook wel Xglx genoemd) het onderdeel is waar het meeste aan wordt ontwikkeld. Deze backend draait in een venster bovenop een normale X-server (vergelijkbaar met Xnest). Deze server levert de benodigde OpenGL-ondersteuning. Er is een -fullscreen-switch voor het aanmaken van één schermvullend venster. Er moet bovendien een display-naam aangeleverd worden die niet de display-naam van de originele X-server is. Een andere backend genaamd Xegl maakt het mogelijk dat Xgl rechtstreeks op de framebuffer draait. Deze backend is echter verre van compleet en werkt alleen op ATI R200-gebaseerde grafische kaarten onder Linux.
Omdat Xgl met de glx-backend niet zelfstandig kan draaien zal het automatisch een onderliggende Xorg-server starten. SUSE's standaardconfiguratie gebruikt daarvoor display :93. Alleen Xgl zal toestemming krijgen om met deze Xorg-server te communiceren en zal display :0 aanmaken voor alle andere programma's.
Geadviseerde hardware
Van de volgende grafische hardware is bekend dat ze goed werken of aan te bevelen zijn om te gebruiken met Xgl. Voeg a.u.b. uitzonderingen toe aan het Engelstalige artikel als u ze kent.
- Intel
Alle grafische chipsets van Intel hebben de nieuwste pakketten van Xgl en Compiz nodig om foutloos te kunnen draaien.- i915, i945
Versnelde Xvideo is slecht op deze kaarten. Zie probleemoplossing. - compiz --replace zal zeer waarschijnlijk de X-server doen vastlopen vanwege een lang uitstaande fout in DRI.
- i915, i945
- NVidia
Alle nVidia-kaarten hebben het propriëtaire stuurprogramma van nVidia nodig voor het draaien van Xgl. Momenteel dient u de Xgl-rpm opnieuw te installeren nadat u het stuurprogramma van nVidia hebt geïnstalleerd.- GeForce 4xxx-serie
XVideo heeft geen versnelling op deze kaarten. - GeForce FX 5xxx-serie, Quadro FX-serie
Versnelde XVideo loopt tegen een flessehals aan op deze kaarten, dit wordt momenteel onderzocht. - GeForce 6xxx-serie
- GeForce 7xxx-serie (GeForce 7600 = niet alle effecten zijn beschikaar maar het meeste werkt)
- GeForce 4xxx-serie
- ATI
- Als u het fglrx-stuurprogramma geïnstalleerd krijgt werken de meeste ATI-gebaseerde kaarten van de nieuwere generatie met Xgl
- Mobility Radeon 9700 SE: Xgl draait met fglrx 8.23
- HighTech Systems Radeon 9600: Xgl/Beryl/Compiz draaien met fglrx 8.33
- Radeon X300: Xgl draait met fglrx 8.23
- Firegl 5200 and 5250 (T60p): Xgl draait met fglrx 8.32 en 8.33.6 en Xorg 7.2
Als u niet zeker weet wat voor kaart u gebruikt, voer dan het volgende commando als root uit:
hwinfo --gfxcard
Als uw kaart er niet tussen staat, controleer dan ook de Gentoo-hardwarelijst.
Problematische hardware
Hardware met bekende problemen of incompatibiliteiten:
- ATI
- Mobility Radeon M6 LY (7000), Mobility Radeon M9 (9000) en Mobility Radeon M9+ (9200)
Tekent artifacten en geeft soms flikkering. - Radeon 9200
Geen hardwareversnelling met stuurprogramma fglrx 8.22.5 - Radeon XPRESS 200M 5955 (PCIE), stuurprogramma: "fglrx_pci", XGL werkt maar de 2D/3D-bestanden zullen niet goed werken (2D/3D-spellen, schermvullende video, etc.)
- Van enkele andere Radeon-chipsets is bekend dat ze met sterk verminderde prestaties werken met het opensource-stuurprogramma onder SLED10
- Mobility Radeon M6 LY (7000), Mobility Radeon M9 (9000) en Mobility Radeon M9+ (9200)
- Intel
- i855GM
Werkt, maar de effecten zijn over het algemeen erg traag. - i815, i845
Te oud. Xgl werkt, maar Compiz niet. Mogelijk wordt er later een compatibiliteitslaag toegevoegd.
- i855GM
Links
- Wiki-artikel over Xgl bij freedesktop.org
- Wiki-artikel over Xegl bij freedesktop.org
- Communicatie tussen Xgl en Xorg - voor dummies
Gerelateerde software
- Compiz - de standaard compositing windowmanager voor Xgl
- Beryl - een gemeenschap-gebaseerde afleiding van compiz met meer (experimentele) functionaliteit
- Xwinwrap - een programma dat vette effecten op uw bureaubladachtergrond plaatst.
Gerelateerde wiki's, forums en gemeenschapswebsites
Broncode
Novell- / openSUSE-gerelateerd
- Persbericht van Novell met video
- Xgl en SUSE Linux Enterprise Desktop
- Xgl onder SUSE 10.1 voor Gnome en KDE met NVidia-kaarten
Recensies, documentatie, schermafdrukken en video's
- Artikelen en diverse Xgl-video's
- Deze YouTube-video is een ander voorbeeld.
- Meerdere vette Xgl/Compiz-schermafdrukken