Portál AbcLinuxu, 19. dubna 2024 17:35

KMS, TTM, GEM, DRI2, EXA, UXA

5.2.2009 13:41 | Přečteno: 1928× | Výběrový blog

Škaredé skratky, trošku vysvetlenia.

Keďže vývoj Xorg ide míľovými krokmi vpred, čo sa týka nových infraštruktúr ako napr. TTM, GEM, DRI2, KMS a iné, rozhodol som sa trošku vysvetliť niektoré skratky, ktoré niekomu vôbec nič nepovedia.

KMS

KMS (Kernel Mode-setting) je pravdepodobne najviditeľnejšou novinkou, ktorá nás poteší. Každý používateľ Linuxu si iste niekedy všimol, že pri štarte OS obrazovka niekoľkokrát preblikne. Jedná sa o zmenu rozlíšenia na monitore - kernel si nastavý pre framebuffer jedno rozlíšenie a potom príde Xorg a ten si zase iné. Pri prepínaní na virtuálne konzoly sa to deje znovu. A tento problém rieši práve KMS - nastavovanie rozlíšenia (a tuším aj obnovovacej frekvencie) je spravované len kernelom a Xorg môže len požiadať o zmenu módu. Avšak práve táto zmena vyžaduje aby sa s video pamäťou pracovalo v jadre.

TTM a GEM

TTM (Translation Table Maps) bolo odpoveďou na riešenie manažmentu video pamäte v jadre od Tungsten Graphics. Aj napriek tomu, že API pre TTM bolo komplikované a vývojári sa stažovali, tak ho začali používať. Intel prišiel s GEM (Graphics Execution Manager), ktorý mal jednoduchšie API a (ževraj) viac vyhovoval potrebám moderných grafických kariet. Názorom proti GEM bolo, že bol písaný len s ohľadom na potreby Intel kariet. Samozrejme dnes už vieme, že od jadra 2.6.28 je GEM zahrnutý, čo znamená, že všetky ovládače napísané pre TTM by mali byť prepísané na použitie GEM. No nie nevyhnutne - napr. driver xf86-video-api využíva tzv. "GEM-ified TTM". Driver tak volá TTM, no volania sú prevádzané na GEM, čo potvrdilo, že GEM je vhodný aj na iné karty ako tie od Intelu. Chaos, čo? ;)

DRI 2

Myslím, že už dosť ľudí počulo o DRI (Direct Rendering Infrastructure), ktoré je zodpovedné za akcelerované vykresľovanie toho, čo je na obrazovke (najmä 3D). Xorg nemôže priamo pristupovať k harvéru (len kernel môže) a tak bol vymyslený DRM (Direct Rendering Manager) v podobe dvoch modulov pre kernel - jeden všeobecný a druhý špecifický pre dané železo. Ďalej je potrebný ešte userspace driver pre grafickú kartu, ktorá komunikuje s DRM a nakoniec už len nejaký X server, ktorý všetko preposiela až k hardvéru.

DRI2 je teda nové DRI (kto by to bol povedal? :) ) a rieši problémy, ktoré vyplývali zo starého dizajnu. Neviem konkrétne povedať, čo sa zmenilo alebo aká je nová architektúra, takže dúfam, že sa vyjadrí niekto vzdelanejší v diskusií. :)

Avšak môžem povedať, že jednou zo zmien je vykresľovanie. To sa nedeje priamo do framebufferu (resp. priamo na obrazovku), no do pamäte, ktorú spravuje GEM. Tým pádom môže kompozitný manažér robiť všeliaké pekné veci... ;)

EXA a UXA

Z pohľadu na API sú to dve totožné veci. Avšak líšia sa v implementácií - kým EXA používa starú architektúru, UXA (UMA Acceleration Architecture) používa spomínaný GEM. Len spomeniem, že EXA je náhradou za starú akceleračnú architektúru XAA.

Kopa ďalších skratiek

Samozrejme to nie je všetko - existuje ešte kopa ďalších vecí, ktoré by tu mohli byť spomenuté ako napr. Gallium3D, XI2, XGE, MPX, Glucose, Wayland, či možno ešte ďalšie ako VA-API, XvMBC, VDPAU... Avšak to by bolo veľa písmenkového guľášu naraz. ;)

       

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

Jardík avatar 5.2.2009 15:04 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: KMS, TTM, GEM, DRI2, EXA, UXA
Odpovědět | Sbalit | Link | Blokovat | Admin
VDPAU doporučuji, můj Athlon X2 5200+ EE nestíhal přehrávat Resident Evil 1 v 1080p (se škálováním na 720p kvůli malé obrazovce) - nestíhal to ve Windows ani v Linuxu přes VLC ani mplayer, takže chyba není v OS. Pak jsem si zkompiloval nejnovější beta driver od nvidie, mplayer s podporou VDPAU a video spustil - nehrálo, ale díky Davidovi se to podařilo zprovoznit (patří mu mé díky) a jede to opravdu rychle. Ve Windows jsem zatím HW akceleraci nezkoušel, ale určitě to tam jde také, ale já chci své oblíbené přehrávače a né nějaké blabla.

Abych ale jen nechválil, stále mi s VDPAU nejde Battlestar Galactica v 720p, vždy se zobrazí první sekunda filmu a pak se to stopne a mplayer se ukončí (nespadne však, ani nic nezahlásí, jako by si myslel, že je konec streamu, přitom to bez VDPAU přehraje celé).
Věřím v jednoho Boha.
Grunt avatar 5.2.2009 16:37 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
Rozbalit Rozbalit vše Re: KMS, TTM, GEM, DRI2, EXA, UXA
VDPAU doporučuji, můj Athlon X2 5200+ EE nestíhal přehrávat Resident Evil 1 v 1080p (se škálováním na 720p kvůli malé obrazovce) - nestíhal to ve Windows ani v Linuxu přes VLC ani mplayer, takže chyba není v OS. Pak jsem si zkompiloval nejnovější beta driver od nvidie, mplayer s podporou VDPAU a video spustil - nehrálo, ale díky Davidovi se to podařilo zprovoznit (patří mu mé díky) a jede to opravdu rychle.

Není to rychlé, ale jede to přesně tak jak to jet má. Jinak pro přehrávání pomocí CPU doporučuji nejnovější svn snapshot a -vfm ffmpeg -lavdopts lowres=1:fast:skiploopfilter=all.

Abych ale jen nechválil, stále mi s VDPAU nejde Battlestar Galactica v 720p, vždy se zobrazí první sekunda filmu a pak se to stopne a mplayer se ukončí (nespadne však, ani nic nezahlásí, jako by si myslel, že je konec streamu, přitom to bez VDPAU přehraje celé).

Zaplní se buffer a rozhodí se synchronizace. Pauzni to pomocí mezerníku a pak zase odpauzuj. Obraz dožene zvuk a pak to zase normálně běží.

Jinak pro autora blogu jediná otázka: Proč je to v blogu a ne tady?

Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
5.2.2009 19:00 Semo | skóre: 45 | blog: Semo
Rozbalit Rozbalit vše Re: KMS, TTM, GEM, DRI2, EXA, UXA
Podla referencii od mojho brata tie optiony pre mplayer sice urychlia prehravanie, ale za cenu viditelneho zhorsenia obrazu. A to pokial viem nie je nijaky fanatik na kvalitu obrazu. Na druhej strane, testoval na mplayeri pre Windows a pravdepdobne to nebol najnovsi zo SVN.
If you hold a Unix shell up to your ear, you can you hear the C.
Grunt avatar 5.2.2009 21:56 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
Rozbalit Rozbalit vše Re: KMS, TTM, GEM, DRI2, EXA, UXA
Podla referencii od mojho brata tie optiony pre mplayer sice urychlia prehravanie, ale za cenu viditelneho zhorsenia obrazu.

Je pravda, že třeba u některých videí z Applu to vidět je, protože se mimo přeskočení několika testů a přidáním několika předpokladů přeskakuje také deblocking filtr, ale u HD ripů s podílem šumu pomalu větším než signálu jsem si ještě jediného bloku nevšiml. Také je pravda, že u takových videí už je to trošku náročnější na rozkódování. Ale myslím si že jako cena za přehrání videa o vyskoém rozlišení na pomalém HW je to velice dobrá cena(Trailery z Applu o 1080p přehraju na jednom jádře Turionu X2 o 800Mhz)

 

Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
5.2.2009 23:12 Semo | skóre: 45 | blog: Semo
Rozbalit Rozbalit vše Re: KMS, TTM, GEM, DRI2, EXA, UXA
Ma NB s Pentiom 1GHz (tusim, mozno 1.1GHz alebo nieco take, neviem uz presne). A ten procak nestiha - raz cas (par sekund) trhne obraz, ked mplayer zahodi par framov. Takze po tych optionoch nestiha o nieco menej, ale za cenu viditelne kockovanejsieho obrazu. Co bude asi ten deblokacny filter.
If you hold a Unix shell up to your ear, you can you hear the C.
Grunt avatar 6.2.2009 02:08 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
Rozbalit Rozbalit vše Re: KMS, TTM, GEM, DRI2, EXA, UXA
Ma NB s Pentiom 1GHz (tusim, mozno 1.1GHz alebo nieco take, neviem uz presne). A ten procak nestiha - raz cas (par sekund) trhne obraz, ked mplayer zahodi par framov. Takze po tych optionoch nestiha o nieco menej, ale za cenu viditelne kockovanejsieho obrazu.

Jasně, ono záleží hodně i na Levelu a počtu bloků ve snímku. Přiznávám, že když jsem si pustil teď v noci HD rip s LCD na plný jas, tak šum byl viditelně roztaženější(efekt rozkódování o menším rozlišení…i když nevím rozlišení čeho, protože hrany byly furt stejně ostré a ani z nich nevyčuhovala barevná složka). Na druhou stranu ve dne a nebo na mém CRT jsem si toho vůbec nevšiml a kontrast se dá zvýšit vždy. Cena za výkon je to IHMO docela dobrá. Starost mi ovšem dělá, že se také přeskakují nějaké referenční snímky, takže v tmavých místech s tím imbecilním šumem se to po pár pohybech kamery pěkně rozmázne a zvláště v tmavých částech už si takového fleku jde všimnout. Ale na procesoru o 1,6Ghz s oběma jádry jsem právě shlédl celý HD rip(takže se muselo jak dekódovat video, tak i audio, muselo se to vykreslovat na vo, musel se mixovat zvuk do dvou kanálu a ještě s hrtf filtrem) a měl ještě slušnou rezervu. A to mi ještě jede v 32-bitovém módu.

 $ ./mplayer -vfm ffmpeg -lavdopts threads=2:lowres=3:fast:skiploopfilter=all -ac null -vo null -cache 8129 -endpos 100 -benchmark ~/Videa/Resident_Evil_Extinction/Resident.Evil.Extinction.2007.Blu-ray.1080p.DTS.x264-CtrlHD.mkv MPlayer dev-SVN-rUNKNOWN-4.1.3 (C) 2000-2009 MPlayer Team                                                 CPU: AMD Turion(tm) 64 X2 Mobile Technology TL-60 (Family: 15, Model: 104, Stepping: 1)                   CPUflags:  MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 1 SSE2: 1                                               Compiled for x86 CPU with extensions: MMX MMX2 3DNow 3DNowEx SSE SSE2                                      … V: 100.0   0/  0 102%  0%  0.0% 0 0 48%   BENCHMARKs: VC: 100.783s VO:   0.015s A:   0.000s Sys:   1.400s =  102.198s BENCHMARK%: VC: 98.6154% VO:  0.0146% A:  0.0000% Sys:  1.3698% = 100.0000%  Exiting... (End of file) $ cat /proc/cpuinfo processor       : 0                                                                                                                                                                    vendor_id       : AuthenticAMD                                                                                                                                                         cpu family      : 15                                                                                                                                                                   model           : 104                                                                                                                                                                  model name      : AMD Turion(tm) 64 X2 Mobile Technology TL-60                                                                                                                         stepping        : 1                                                                                                                                                                    cpu MHz         : 800.000                                                                                                                                                              cache size      : 512 KB 

Právě hledám vhodnější video výstup(prej vidx a nebo vdpau), protože xv dost žere. Už jen kdyby integrovali i větší cache pro dekódovaná data(paměti mám furt dost)…pak by to třeba s přežvýkaným audiem a s menšími obtížemi šlo i na těch 800Mhz.

Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
Grunt avatar 6.2.2009 02:10 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
Rozbalit Rozbalit vše Re: KMS, TTM, GEM, DRI2, EXA, UXA
$ ./mplayer -vfm ffmpeg -lavdopts…

Doprčic. Co je to ten editor zase za krám?:

$ ./mplayer -vfm ffmpeg -lavdopts threads=2:lowres=3:fast:skiploopfilter=all -ac null -vo null -cache 8129 -endpos 100 -benchmark ~/Videa/Resident_Evil_Extinction/Resident.Evil.Extinction.2007.Blu-ray.1080p.DTS.x264-CtrlHD.mkv
MPlayer dev-SVN-rUNKNOWN-4.1.3 (C) 2000-2009 MPlayer Team                                                
CPU: AMD Turion(tm) 64 X2 Mobile Technology TL-60 (Family: 15, Model: 104, Stepping: 1)                  
CPUflags:  MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 1 SSE2: 1                                              
Compiled for x86 CPU with extensions: MMX MMX2 3DNow 3DNowEx SSE SSE2                                    

…
V: 100.0   0/  0 102%  0%  0.0% 0 0 48% 

BENCHMARKs: VC: 100.783s VO:   0.015s A:   0.000s Sys:   1.400s =  102.198s
BENCHMARK%: VC: 98.6154% VO:  0.0146% A:  0.0000% Sys:  1.3698% = 100.0000%

Exiting... (End of file)
$ cat /proc/cpuinfo
processor       : 0                                                                                                                                                                   
vendor_id       : AuthenticAMD                                                                                                                                                        
cpu family      : 15                                                                                                                                                                  
model           : 104                                                                                                                                                                 
model name      : AMD Turion(tm) 64 X2 Mobile Technology TL-60                                                                                                                        
stepping        : 1                                                                                                                                                                   
cpu MHz         : 800.000                                                                                                                                                             
cache size      : 512 KB
…
Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
Jardík avatar 6.2.2009 02:27 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: KMS, TTM, GEM, DRI2, EXA, UXA
Jo, chybí tomu vsync nebo co, ale dá se na to zvyknout. Samozřejmě by to ale bylo lepší s ním.
Věřím v jednoho Boha.
Jardík avatar 6.2.2009 02:26 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: KMS, TTM, GEM, DRI2, EXA, UXA
Zaplní se buffer a rozhodí se synchronizace. Pauzni to pomocí mezerníku a pak zase odpauzuj. Obraz dožene zvuk a pak to zase normálně běží.

Každou sekundu to pauzovat nebudu, nejsem magor (teda vlastně jsem, ale stejně ... :-))

Věřím v jednoho Boha.
Grunt avatar 6.2.2009 10:35 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
Rozbalit Rozbalit vše Re: KMS, TTM, GEM, DRI2, EXA, UXA

U mě stačí jednou a pak to jede normálně.

Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
elenril avatar 5.2.2009 19:09 elenril | skóre: 21 | blog: Raziel
Rozbalit Rozbalit vše Re: KMS, TTM, GEM, DRI2, EXA, UXA
Jestli je to dvoujádro, tak zkus ffmpeg-mt
git clone git://repo.or.cz/mplayer
cd mplayer
git checkout -t -b mt origin/mt
git submodule init
git submodule update
./configure && make.....
mplayer -lavdopts threads=2 ....
Jako bonus k tomu dostaneš vylepšenou pauzu
Grunt avatar 6.2.2009 11:17 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
Rozbalit Rozbalit vše Re: KMS, TTM, GEM, DRI2, EXA, UXA

A je nějaký důvod proč to není v hlavní větvi?

Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
5.2.2009 17:24 Leoš Literák | skóre: 74 | blog: LL | Praha
Rozbalit Rozbalit vše Re: KMS, TTM, GEM, DRI2, EXA, UXA
Odpovědět | Sbalit | Link | Blokovat | Admin

Muzes to hodit do slovniku?

Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
Milan Lajtoš avatar 5.2.2009 22:40 Milan Lajtoš | skóre: 22 | blog: /blog/babraq
Rozbalit Rozbalit vše Re: KMS, TTM, GEM, DRI2, EXA, UXA

Ok, dám... Len to musím nejako krajšie sformulovať a vyhodiť balast.

“Every great achievement was once considered impossible.”
Milan Lajtoš avatar 5.2.2009 23:08 Milan Lajtoš | skóre: 22 | blog: /blog/babraq
Rozbalit Rozbalit vše Re: KMS, TTM, GEM, DRI2, EXA, UXA

KMS, TTM, GEM, UXA

“Every great achievement was once considered impossible.”
17.2.2009 17:07 Leoš Literák | skóre: 74 | blog: LL | Praha
Rozbalit Rozbalit vše Re: KMS, TTM, GEM, DRI2, EXA, UXA

diky

Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
5.2.2009 17:27 Non_E | skóre: 24 | blog: hic_sunt_leones | Pardubice
Rozbalit Rozbalit vše Re: KMS, TTM, GEM, DRI2, EXA, UXA
Odpovědět | Sbalit | Link | Blokovat | Admin
Těch zkratek ale je, škoda, že mi polovina technologií nejde :-(
Only Sith deals in absolutes.
Milan Lajtoš avatar 6.2.2009 09:48 Milan Lajtoš | skóre: 22 | blog: /blog/babraq
Rozbalit Rozbalit vše Re: KMS, TTM, GEM, DRI2, EXA, UXA

Dôvodov, že to nejde môže byť viacero. Napr. na mojom systéme nevyužívam ani jednu zo spomínaných lebo binárny driver pre moju nvidiu nič z toho nepodporuje. A driver nouveau je zase pre mňa nepoužiteľný. :)

“Every great achievement was once considered impossible.”

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.