Hirdetés

A lábon lőtt pingvin esete a 3D-gyorsítással

|

A linux évek óta kapja a kritikát, miszerint nem játékbarát, és ennek egyik fő oka a 3D-gyorsítás állapota. Cikksorozatunkban áttekintjük a driverek fajtáit és minőségét, a linuxos 3D architektúrákat, és konkrét tesztekkel, következtetésekkel, illetve javított driverekkel is szolgálunk.

Hirdetés

Tény, hogy Linuxra viszonylag sok játék elérhető már, és a VGA-kártyák támogatása is folyamatosan javul, de nem nyújt olyan jól szervezett platformot, mint a Windows és a DirectX, habár a cikk írása közben érkeztek biztató hírek a Steam háza tájáról, ahol nagy erőkkel javítják a linuxos 3D-támogatást. Milyen a minőségi skála? Régi Linux ökölszabály, hogy ha játszani is akarunk, akkor kell egy normális VGA gyári illesztőprogrammal (értsd: Nvidia). Második helyen az ATI/AMD áll, a harmadik inkább csak munkára és internetezésre alkalmas szerepben az Intel, az egyéb létező gyártók pedig leginkább csak a „van kép a monitoron” kategóriát testesítik meg. A helyzetet bonyolítja egyrészt a VGA-kártyák minősége, linuxos támogatásuk mértéke, az illesztőprogramok (vagyis driverek) minősége és nyílt vagy zárt volta is. Igen, ezt egy kicsit bővebben ki kell fejteni...

 

 

Szóval jelen pillanatban az Nvidia az egyetlen, aki tisztességes teljesítményű termékeihez Linuxon jó minőségű drivereket tesz elérhetővé, és a kártyateljesítmény, valamint a driverminőség eredője elegendő a ma elvárható játékélményhez (az Optimus-támogatás hiánya megérne egy külön misét). Az ATI/AMD kártyái gyakran jóval nagyobb nyers teljesítményre képesek, mégis a driverek - bár már javuló, de még mindig nem eléggé kiforrott - minősége ezt az eredő értéket a kellő szint alá rontja. Az Intel GPU-k teljesítménye Windows alatt sem igazán ideális a játékhoz, Linuxon pedig egyenesen elégtelen, és ehhez a driverek terén is káosz párosul, az erős gyári támogatás és fejlesztés ellenére is.

Driver alapok

Nvidia zárt - a GLX egyik utolsó mohikánja, az UMS megoldását támogatja, a Waylandet nem
Nvidia nyílt - DRI driver, támogatja a KMS-t és a Waylandet
AMD zárt - DRI driver, támogatja a KMS-t, „nem szereti” a Waylandet
AMD nyílt - DRI driver, támogatja a KMS-t és a Waylandet
Intel zárt - DRI driver, a KMS-sel kapcsolatban olvashatunk a fórumokon problémákról, a Wayland elméletileg működik vele
Intel nyílt - DRI driver, támogatja a KMS-t és a Waylandet


Nvidia

Hogy is van ez? Nézzük meg a főbb példákat. Vannak gyártók, akik nem bízzák a közösségre termékeik meghajtóprogramjainak elkészítését vagy jobbítását, nem adnak ki specifikációkat és dokumentációt sem, viszont a gyári drivereket ingyenesen elérhetővé teszik a felhasználók számára. Ilyen az Nvidia zárt forrású, hagyományosnak mondható, GLX implementációra épülő Linux drivere. Ebben az esetben, ha a driver jó, örülhetünk, ha nem, akkor viszont nem tehetünk semmit. Szerencsére az Nvidia UNIX driver ezen a platformon kiemelkedően jónak mondható.
 
Létezik nyílt forrású Nvidia driver is, ez lenne a Nouveau projekt, ahol közösségi alapon próbálnak megoldást találni az Nvidia GPU-val szerelt eszközök meghajtására. Sok tekintetben tiszteletreméltó próbálkozás, de alapjaiban mutat párhuzamot a szabad Flash player klónok fejlesztésével. Megfelelő dokumentációk és gyári támogatás nélkül soha nem érheti utol az eredetit, és az az igazság, hogy a „néhány kártyán már működik vele a Compiz és a Quake 3” az egyik oldalról nézve óriási eredmény, de a felhasználói igényekhez képest nem piacképes alternatíva. További érdekes probléma, hogy a mai GPU-k már réges-régen nem fix utasításfeldolgozó futószalaggal rendelkeznek. Hogy ez ebben az esetben mit jelent? A régi, viszonylag egyszerű felépítésű 3D-gyorsítókhoz megfelelő ismeretek, járulékos információk, helyes következtetések, hardvertesztek és próbálgatások útján is lehetséges volt egészen tisztességes drivert írni. A mai GPU-k világában a Nouveau projekt állandóan a szürke zónában kell, hogy mozogjon, a hardver nagyon mélyreható vizsgálata és a zárt driverek bizonyos mértékű visszafejtése - tehát sorozatos jogsértések - nélkül a munka nem lehetséges. Ezt lehet tagadni, de józan ésszel be kell látni, hogy másképp nem megy...

AMD és Intel

Természetesen az ATI/AMD is rendelkezik zárt megoldással, amely a kezdeti, sokat szidott állapotból már elérte a használható minőséget, de még mindig sok baj van vele. Stabilitási problémák terhelik, és a régebbi modellek támogatása nem megoldott, a terméktámogatási ciklus rövidebb, mint az átlag felhasználók pénztárcája. Viszonylag elterjedt, még nagy számban fellelhető, gyakori eszközökhöz már nem nyújt megoldást, illetve igen, de csak régebbi Linux rendszerek vagy korábbi X-szerver esetén. Nem támogatja a Rage Theater lehetőségeit sem, a Radeon kártyákon gyakori és jól bevált tévé- és videobemenet nem működik. Az ATI/AMD nyílt forrású drivereinél egy valódi közösségi munka alakult ki, amit dokumentációkkal a gyártó is erősen támogat. A nyílt forrású driver támogatja a régebbi hardvert, működnek a kiegészítők és stabilabban üzemel, mint a zárt megoldás, viszont teljesítmény terén általában elmarad a gyári megoldás mögött.  

Kevesen ismerik, és még kevesebben használják az Intel - leginkább a beágyazott rendszerek kedvéért készített – zárt IEGD megoldását. Stabilitásáról megoszlanak a fellelhető vélemények, csak néhány disztribúcióhoz idomul igazán, és nagyon nehezen telepíthető átlagos „utcai” Linuxra. OpenGL megvalósítása „tisztességes teljesítményű” profi holmi, és természetesen a fórumokon sokat emlegetett problémás Poulsbo is működik vele, de életre keltése még profi kezekben is nehéz ügy.

Az Intel nagyon erős támogatása mellett készül egy nyílt, közösségi megoldás is. A teljesítmény javítására egyre újabb gyorsítási architektúrákat valósít meg (XAA > EXA > UXA), újítani próbáltak a hagyományos XAA memóriakezelésen a GEM memóriavezérlő bevezetésével, a KMS (kernel mode setting) támogatói, és erősen koncentrálnak a kompozit effektekhez szükséges funkciók megvalósítására, működésére. Teljesítmény és használhatóság terén sokszor jogos kritika éri. A régebbi GPU modellekhez gyakran módosított driver (intellegacy) szükséges, a KMS néha problémákat okoz, és néhány modellnél a virtuális képernyő korlátozott mérete is meg tudja lepni a felhasználót. Valamikor régebben az Intel driver nagyon keveset nyújtott, de biztosan működött, nem volt vele probléma. De ez már a múlté.

Mi az X-szerver és a Wayland?

Az X-szerver a UNIX jellegű operációs rendszerek hagyományos alapja a grafikus felületek és asztalkezelők működtetéséhez. Fejlesztése a MIT-en (Massachusetts Institute of Technology) indult, jelenleg az X.org Alapítvány gondozza. Sokak szerint „bloatware”, azaz egy túlnőtt, túlbonyolított, rengeteg hibát tartalmazó termék. Ebben a véleményben van némi igazság, az X sok toldozott-foldozott megoldást tartalmaz, viszonylag nagyméretű, vannak hibái, és nehezen orvosolható kompromisszumai, ennek ellenére elterjedtsége nagy, támogatása jónak mondható, és - hibái ismeretében - jól használható megoldás.

A Wayland az X kiváltására létrejött projekt, amely a fentiekben felsorolt hátulütők orvoslására jött létre mint nulláról, tisztán felépített új megoldás. Elsősorban a kompozit ablakkezelők igényeit szem előtt tartva tervezték, a projekt alapítója Kristian Hogsberg, a Red Hat egyik alkalmazottja volt, aki jelenleg az Intel alkalmazásában áll és közben az AIGLX és a DRI2 fejlesztésén is dolgozott. Nem elterjedt, támogatása kicsi, még rengeteg hiányossággal küzd.

 



GLX és a DRI

A GLX (OpenGL Extension to the X Window System) a UNIX (és a UNIX jellegű) rendszerek hagyományos, X-szerveren megvalósított, szabványos OpenGL-támogatása. Az SGI fejlesztése. Hálózattranszparens protokoll, a kliens- és a 3D-leképező rendszer akár külön gépeken is futhat, sőt, a 3D-leképező akár több gépből álló renderfarm is lehet. Eredetileg a nagy teljesítményű grafikus workstation gépekhez készült, professzionális (pl. CAD) célokra. A megvalósított 3D-leképezés lehet direkt, indirekt, ezen belül pedig szoftveralapú vagy hardveresen gyorsított. Maga a GLX protokoll is képes hálózati csomagokként, illetve direkt módon (helyi gépen, hálózati be-, illetve kicsomagolás nélkül is) üzemelni. Felépítésénél fogva alkalmas a kompozit asztalkezelők igényeinek kiszolgálására. Linuxon a Utah-GLX projekt képviselte ezt a megoldást, több mint egy évtizeddel ezelőtt már a kor szinte minden elérhető 3D VGA-kártyájához biztosítottak egyszerű 3D gyorsítást. Fejlesztésében és tesztelésében John Carmack (Id Software) is részt vett.

A DRI (Direct Rendering Infrastructure) a GLX kiváltására létrehozott fejlesztés. Elsődleges célja a közvetlen hardverelérés, és ezzel a teljesítmény javítása volt (a hálózati protokoll kihagyásával). Nem hálózattranszparens. Az alkalmazások felé emulálja a kliens oldali GLX-et. Az Xfree86 4.0-ban mutatkozott be a felhasználók szélesebb táborának, és az X.org terjesztése óta egyeduralkodónak számít. A Utah-GLX-szel szemben nagyon sok - akkor még elterjedt, olcsó, egyszerű - eszközt nem, vagy csak érintőlegesen támogatott, ezekhez később sem készültek el a meghajtóprogramok. Nem támogatta az Nvidia eszközeit sem. A kompozit megoldások tekintetében problémákkal kellett szembenézniük, ezt további bővítések és fejlesztések próbálták megoldani. A GPU-gyártók közül az ATI/AMD és az Intel képviseli elsősorban.

Magánvélemény

Igen, hangsúlyozottan a cikk szerzőjének magánvéleménye, és nem bizonyított tény következik: a fenti történet bizony erősen úgy fest, hogy volt egy elvakult fejlesztői kör, akiknek szemében a szoftver nyitottsága - mint vezérelv - többet jelentett a minőségnél. Volt még a gyártói kör, akik szerették volna néhány konkurensüket a kosáron kívül tudni, és ellenőrzésük alá vonni az akkor még a játékpiacon is igencsak jó lendületben felfelé menetelő, ígéretes lehetőséget jelentő Linuxot. Ez a két érdek találkozott, kezet rázott, szövetséget kötött, és ráült a Linux fejlesztésére. Nekünk, felhasználóknak pedig kimaradt egy évtizednyi fejlődés az életünkből, amikor is kénytelenek voltunk sokszor nagyon silány minőségű szoftvertermékeket használni, és megelégedni az asztalról lehullott morzsákkal...

Mit lehet tenni ebben a helyzetben? A Little Susie Linux disztribúciónál arra a következtetésre jutottunk, hogy meg kell vizsgálni a Utah-GLX projekt hagyatékát, a törvényesség keretei között maradva minél több információt be kell szerezni az Nvidia bináris driverének felépítéséről és működéséről, át kell tekinteni a DRI működését, és az ezekből levonható konzekvenciák alapján tiszta vizet önteni a pohárba, megoldást készíteni vagy legalábbis felébreszteni a fejlesztőket. A méréseket publikálni kell, fizikai lehetetlennek tűnő összehasonlító teszteket szükséges lehetővé tenni, és végül rehabilitálni a GLX-et. Drivereket kell írni, amik a minőség útját járják. Meg kell fizetni a „számlát”.

Ennek egyik első publikus lépése volt a HUP fórumon 2011 májusában óriási megrökönyödést, rengeteg kritikát, a szakma szinte teljes elutasítását és némi botrányt is kiváltó bejelentés, ami szánt szándékkal a „Megy-e az Intel GMA az Nvidia zárt driverével?” címen jelent meg. Az első kísérletekben, tesztekben ugyanis többféle régebbi Intel integrált GPU futott néhány tesztkört kernel és szerver oldalon a DRI, kliens oldalon pedig az Nvidia 71.86 által meghajtva. Hihetetlen? Igen. Képtelenség? Látszólag az, de mégsem. Sőt! Sokkal jobban működik... és nemcsak az Intellel. (Innen folytatjuk a következő részben.)

Források, linkek:
en.wikipedia.org/wiki/GLX
en.wikipedia.org/wiki/Utah_GLX
utah-glx.sourceforge.net/
dri.freedesktop.org/wiki/

Komolyabban érdekel az IT? Informatikai, infokommunikációs döntéshozóknak szóló híreinket és elemzéseinket itt találod.

Hirdetés
Hirdetés

Úgy tűnik, AdBlockert használsz, amivel megakadályozod a reklámok megjelenítését. Amennyiben szeretnéd támogatni a munkánkat, kérjük add hozzá az oldalt a kivételek listájához, vagy támogass minket közvetlenül! További információért kattints!

Engedélyezi, hogy a https://pcworld.hu értesítéseket küldjön Önnek a kiemelt hírekről? Az értesítések bármikor kikapcsolhatók a böngésző beállításaiban.