Portál AbcLinuxu, 27. října 2025 17:02
Souběžně s prací Novellu na Xgl probíhala i práce Red Hatu na vlastní (tak trochu konkurenční) architektuře umožňující využívat OpenGL při renderingu desktopu. Pojďme se jí nyní podívat trochu na zoubek...
Nejdříve je potřeba říct si něco málo o architektuře X serveru. Mnoho lidí si pod pojmem "indirect rendering" představuje pomalé softwarové renderování OpenGL přes Mesu. Tato představa je však zcela zcestná, většinou tomu tak sice je, ale není to pravidlem či podmínkou.
Jak všichni víme, X11 je klient-server protokol. Všechny volání funkcí jdou z klienta (aplikace) na server. V případně OpenGL se takto děje přes GLX. "Direct rendering", tedy přímé renderování, znamená pouze to, že je tento systém obcházen. Nemusí to ovšem nutně znamenat hardwarovou akceleraci, i když ve většině případů tomu tak je (aplikace se "baví" např. prostřednictvím DRI přímo s hardwarem). Ovšem stejně tak jako neznamená "direct rendering" nutně hardwarovou akceleraci, tak "indirect rendering" neznamená nutně softwarový rendering. X server může OpenGL volání taktéž přeposílat grafické kartě a tak je akcelerovat. A toto je právě věc, na které Red Hat v poslední době pracoval.
Vývoj Accelerated Indirect Rendering (dále jen AIR či AIGLX) probíhal již od začátku zcela otevřeně v xorg CVS. Tímto se liší od Xgl, které začalo sice zcela nezávisle a otevřeně, nicméně největší pokrok ve vývoji byl proveden za zavřenými dveřmi Novellem (nyní již je však i Xgl součástí xorg CVS). Toto je ovšem jen dalo by se říci nepodstatný detajl (i když Red Hat ho dává okázalým způsobem najevo
). Daleko podstatnější je to, že zatímco Xgl je zhola nová grafická architektura pro X server (nahrazující současné DDX) postavená čistě nad OpenGL, tak AIR je jen rozšířením možností současné grafické architektury.
Tento fakt, že AIR je jen rozšířením současné architektury, vyhovuje spoustě vývojářů X.Org více než to o co se snaží Xgl (grafickou architekturu zcela nahradit a postavit jí čistě nad OpenGL). Někteří vývojáři X.Org také projevili obavy, že Xgl by de facto "uvrhlo lidi do područí proprietárních driverů". Naštěstí většina zřejmě tento zealotismus nesdílí. Red Hat komentuje situaci takto:
How is this different than XGL?
XGL is a different X server. This is a more incremental change which is slated to become part of Xorg. We don't believe that replacing the entire X server is the right path, and that improving it incrementally is a better way to modernize it. After talking to people at xdevconf, it felt like much of the upstream Xorg community shares this view. You can search [WWW] Adam Jackson's notes for "large work for Xgl" to get the blow-by-blow or NVidia's [WWW] presentation from XDevConf 2006 on using the existing model.
We've been working on the AIGLX code for a some time with the community, which is in direct contrast with the way that XGL was developed. XGL spent the last few months of its development behind closed doors and was dropped on the community as a finished solution. Unfortunately, it wasn't peer reviewed during its development process, and its architecture doesn't sit well with a lot of people.
Je zcela jisté, že pohled Red Hatu je zaujatý
Nicméně to že jak většina vývojářů X.Org, tak i samotní vývojáři NVidie, preferují AIR před Xgl, je faktem (viz. např. prezentace NVidie na XDevConfu). Faktem také je, že AIR by měl být schopný zvládnout prakticky to samé, co Xgl (Red Hat pracoval na zakomponování OpenGL composite manageru přímo do Metacity, ovšem teoreticky by měl být i Compiz od Novellu určený pro Xgl použitelný pod AIR). Zatím AIR funguje pouze s opensource drivery (Radeon r200, Intel 810, atp.), ale v okamžiku kdy NVidia (a snad i ATI) implementuje novou GLX_EXT_texture_from_pixmap OpenGL extension, bude fungovat i s proprietárními drivery.
Mně osobně se víc líbí přístup Xgl. Postavení celé grafické architektury nad OpenGL považuji za dobrou investici do budoucna. Ovšem příchod AIR taktéž vítám, rozhodně má své opodstatnění a konkurence je vítána, alespoň bude vývoj probíhat rychleji
Celkově vzato jsem velmi potěšen tím, jak se ledy okolo grafické architektury X serveru v poslední době začly hýbat. Bylo to už opravdu potřeba.
Pokud se chcete o AIR dozvědět něco více (nebo ho dokonce vyzkoušet), můžete tak učinit na stránkách Fedoraproject.org. Další zajímavé informace najdete v prezentaci Kristiana Høgsberga z XDevConfu.
UPDATE:
David Reveman (hlavní vývojář Xgl z Novellu) napsal do xorg mailing listu jeho vlastní názor na současnou situaci: AIGLX, metacity, nvidia and Xgl
Tiskni
Sdílej:
). Xgl mi tu funguje a je to paráda
Naprosto úchvatně plynulé
Pouze se nahrazuje jeho současný DDX subysystém za nový Xgl DDX. A má to spoustu výhod, kromě uplné kompletní akcelerace také to, že to tu architekturu významně zjednodušuje (jediné o co je potřeba se starat je OpenGL, už žádné device-specific hacky... ale samozřejmě karta bez podpory OpenGL má pak smůlu
) a poskytuje to spoustu nových možností.
To co bylo vidět na videu je jen demonstrace, ukazuje to co všechno je s tím možno dělat, jak je to mocný nástroj... a pro lidi jako jsem já už i toto přináší velké praktické zlepšení - třeba ten Expose-like switcher je pro mě (jakožto pro člověka co nevyužívá velké množství virtuálních ploch) nesmírně praktická věc.
A hlavně si myslím, že je to dobrá investice do budoucna. Protože 2D je v současných grafických kartách jen emulováno, GPU je dnes už čistě 3D a už se i objevili sem tam informace, že do budoucna výrobci grafických karet zruší 2D podporu uplně (i když NVidia to v té prezentaci na XDevConfu více-méně popřela). Navíc v konkurenci s Windows Vista a MacOS X by linuxivý desktop šíleně zaostal, kdyby takovouto schopností nedisponoval, což si jak Novell tak Red Hat naštěstí uvědomují
Normálně když se teď mluví o Xgl, je řeč o Xglx serveru, který běží podobně jako Xephyr nebo Xnest nad normálním X serverem.
Oproti XAA je to velký kvalitativní skok (i když v současnosti není ještě EXA moc odladěná, takže paradoxně něco může naopak oproti XAA zpomalovat), který umožní fungující akcelerovanou Render a Composite extension na mnoha grafických kartách, kde to až do teď bylo nemyslitelné (XAA je totiž nechutně zastaralá a omezená). Nicméně EXA je IMHO stejně jen přechodná věc, budoucnost prostě vidím v kompletním renderingu desktopu přes OpenGL.
Doporučuju přečíst si tento článek: The State of Linux Graphics, stojí to opravdu za to
Since Cairo implements both an xlib and OpenGL backend a direct performance comparison can be done between xlib and OpenGL. In the benchmarks that have been published, OpenGL beats XAA anywhere from ten to hundred to one in speed. This large performance differential is due to glitz/OpenGL’s use of the 3D hardware on the graphics chip.
S EXA architekturou AIR normálně koexistuje.
Jo a btw. nakonec si stejně myslím (a doufám v to), že "vyhraje" první možnost - tedy architektura X serveru postavená kompletně na OpenGL. Nicméně ta cesta k tomu není přímá, ověšem to nutně neznamená že je to tak špatně (ty věci se alespoň mezitím zvládnou pořádně vyvinout a vyspějí do stabilnější podoby).
No pobavil jsem se dobře
Nicméně ten výrok o zealotech v tomto případě IMHO není neoprávněný, protože co jsem tak četl, ti někteří vývojáři proti Xgl brojili právě a jen z důvodu, že na kvalitní OpenGL jsou potřeba proprietární drivery. Takovéto jednání je IMHO nesmyslné, nehledě na to že Xgl bude velmi slušně fungovat i s opensource OpenGL ovladači jako je Radeon r200, i810, i815, Via Unichrome, atp.
Kdybych měl víc času, rozepsal bych se o problematice Xgl a AIGLX ještě víc, tohle bylo takové hodně narychlo sepsané. Ono je tam okolo toho totiž ještě hodně zajímavých věcí. Ale bohužel teď moc času nemám :-/ Ale snad se ještě k tomu tématu někdy vrátím
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.