Xgl

De Viquipèdia
Dreceres ràpides: navegació, cerca
Xgl, un servidor de pantalla.

L'Xgl és una arquitectura del gestor de finestres, començat per David Reveman, situat a sobre de l'OpenGL mitjançant glitz. Usa les millores de les targetes gràfiques modernes i dels seus controladors d'OpenGL, suportant l'acceleració per maquinari a totes les X, les aplicacions d'OpenGL i de XVideo i els efectes gràfics dels compositors de finestres com el Compiz.

Des del maig del 2006, el servidor de X Xgl (i alguns components com Compiz i eines de configuració gràfica) venen a la SuSE 10.1, tot i que no per omissió, també està inclòs a la Frugalware.

Xgl es pot usar fàcilment a l'Ubuntu 6.06 (amb paquets binaris provinents repositoris no oficials), també està disponible per Gentoo i hi ha un PKGBUILD disponible per l'Arch Linux

Història[modifica | modifica el codi]

Originalment, Xgl es va desenvolupar en llistes de correu públic, però durant molt temps, des del 2 de gener del 2006 la majoria de [1] desenvolupament es va fer sense dir res.

El dia que l'Xgl es va tornar a obrir al públic [2] [3], i inclòs a freedesktop.org, junt amb una reestructuració que feia que suportés més controladors de targetes gràfiques. Els backends de X usats pel servidor Xgl inclouen Xglx i Xegl. El febrer del 2006 el servidor va guanyar molts usuaris ja que Novell va mostrar un vídeo fent ús de les seves possibilitats. [4] [5] [6].

Aquests efectes van ser inicialment implementats al compositor de finestres glxcompmgr (no s'ha de confondre amb xcompmgr), actualment desfasat perquè els efectes no podien implementar-se correctament sense estrènyer la interacció entre el gestor de finestres i el compositor. Per solucionar aquest problema, David Reveman va desenvolupar Compiz, el primer compositor de finestres OpenGL pel X Window System que funciona correctament. [7]

Backends[modifica | modifica el codi]

OpenGL no especifica com iniciar el visor per manipular els contexts de dibuix. En canvi, podem manipular aquestes operacions amb una API específica pel gestor de finestres. Hi ha dos backends que solucionen aquest problema. La majoria de backends contindran el mateix codi i les diferències principals seran a la inicialització dels servidors.

Xglx[modifica | modifica el codi]

Xglx va ser el primer backend implementat per aquesta arquitectura. Actualment també és el que té la majoria de desenvolupament. Requereix un servidor X ja existent per còrre-hi sobre i utilitza GLX per crear una finestra OpenGL, el qual el Xgl utilitza, similar a Xnest. Aquest mode intenta ser utilitzat només pel desenvolupament al futur, ja que és redundant i requereix un servidor X per corre-hi Xgl sobre ell. Al XDevConf 2006 nVidia va fer una presentació argumentant que aquesta direcció és equivocada perquè el servidor amb capes abstreu característiques de les targes. Això fa que el suport per ulleres 3D i monitors duals pel driver de les targes sigui molt més difícil [8] (PDF). De totes maneres, deixant la inicialització al servidor X existent, permet als desenvolupadors de centrar-se amb la funcionalitat del servidor més que a dedicar molt de temps amb temes específics amb les interfícies de nombrós maquinari de vídeo. De moment, Xglx no suporta oficialment múltiples monitors, de totes maneres això ha estat aconseguit a amb una Ubuntu Dapper i amb Ati.

Xegl[modifica | modifica el codi]

Xegl és el futur de Xgl i a llarg termini l'objectiu del desenvolupament del servidor X. El servidor Xegl compartirà molt de codi amb el servidor Xglx, exceptuant la part d'inicialització de la zona pintable de l'OpenGL i la gestió contextual que serà portada a terme pel Embedded GL, referit a EGL API. L'actual implementació utilitza Mesa-solo per proveir renderitzat directe amb OpenGL al Linux framebuffer o DRI al maquinari gràfic. Cap a l'agost 2005 Xegl només pot ser utilitzat amb la tarja Radeon R200 i el desenvolupament ha estat retardat. Segurament serà repré quan el servidor Xglx serà provat ell mateix i els controladors tancats suportaran el EGL API, en aquest cas serà un reemplaçament transparent per servidors Xglx aniuats.

Raonament[modifica | modifica el codi]

Estructurant tot el renderitzat sobre el OpenGL pot simplificar el desenvolupament de controladors de vídeo. Elimina la separació artificial de 2D i 3D acceleració. Aquesta és una avantatge de les operacions 2D que són freqüentment (al contrari de les 3D) sense acceleració. Això també elimina els controladors depenents del codi del servidor X, i permet accelerar operacions de Render i Composició independentment del controlador gràfic. Addicionalment, alguns gestionadors poden utilitzar l'API OpenGL per renderitzar, permeten força efectes espectaculars. S'ha estat informat que fabricants afiliats de NVIDIA i ATI estan apostant per fer un llançament de controladors només binari per servidors X basats amb OpenGL una vegada l'API hagi estat estabilitzada. A la Conferència de Desenvolupadors d'Xorg 2006 es va ser indicat per NVIDIA que també estan força contents amb la interfície. La idea d'estendre aquest està sent portada a terme per AIGLX pel projecte Fedora [9]

Competidors[modifica | modifica el codi]

El renderitzat a l'escriptori i finestra OpenGL amb maquinari d'acceleració, ha estat utilitzant al Mac OS X, en una tecnologia anomenada Quartz Extreme, des del Mac OS X v10.2. Quartz 2D Extreme és una millora a aquesta característica i més directament comparable a Xgl. Igual que Xgl, Quartz 2D Extreme porta a l'acceleració OpenGL totes les operacions de pintat 2D (no només la part d'escriptori) i ve amb Mac OS X v10.4, però està desactivat per defecte pendent d'una declaració formal de production-readiness. El més pioner sembla ser Sun Microsystems que ha desenvolupat per aquest tipus de característiques a una GUI, un projecte anomenat Project Looking Glass [10].

Microsoft està desenvolupament una tecnologia similar basat en DirectX, anomenat DWM, com a part del proper sistema operatiu Windows Vista.

Controvèrsia[modifica | modifica el codi]

La tecnologia Xgl necessita un bon rendiment OpenGL, a més d'una bona quantitat de característiques que només tenen les targetes gràfiques modernes, i actualment només s'hi pot accedir mitjançant els mòduls (privatius) d'ATI o Nvidia.

Hi ha alguns controladors lliures per aquestes targetes que només suporten el renderitzat 2D o un suport primitiu d'OpenGL.

Això és un camí sense sortida, perquè les empreses que fan els controladors han afirmat que no tenen la intenció d'alliberar res.

Vegeu també[modifica | modifica el codi]

Enllaços externs[modifica | modifica el codi]

A Wikimedia Commons hi ha contingut multimèdia relatiu a: Xgl