Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
Marek

Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 5. leden 2010, 16:57:02 Předmět: |
|
|
VladR napsal: |
Eosie napsal: |
Jelikož mi zbývají cca 2+ roky studia, hodlám se spíš věnovat věcem, který bych se sám od sebe nenaučil. Času už je málo. :/ |
To AMD/ATI ma pobocku v Prahe na vyvoj driverov ? |
VladR> Ne, je to moje hobby tzn. free. (asi jako když si někdo jiný píše engine...) Můj progress lze sledovat třeba tady: http://cgit.freedesktop.org/mesa/mesa/log/?qt=author&q=Marek . 3D driver je multiplatformní multi-3DAPI, ale GPU memory manager máme jenom pro Linux. 2 zaměstanci AMD/ATI tam commitují taky, ale do jiného driveru. _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
 |
VladR
Založen: 30. 07. 2007 Příspěvky: 1322 Bydliště: Greater New York City Area
|
Zaslal: 5. leden 2010, 17:13:56 Předmět: |
|
|
Netusil som, ze drivery ide robit ako open-source/free.
Kto ti to tam kontroluje, resp. ake automatizovane Q&A na tie drivery je ?
Posli nejaky link, kde sumarizuju ako to zacat, je to zaujimave.
Okrem ineho aj preto, ze pisaci driverov su nechutne dobre plateni  |
|
Návrat nahoru |
|
 |
Marek

Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 5. leden 2010, 19:21:33 Předmět: |
|
|
VladR napsal: |
Netusil som, ze drivery ide robit ako open-source/free. |
Open source drivery se dělají proto, že některé systémy nemůžou distribuovat drivery s uzavřeným kódem (licenční problémy, Linux) anebo se systém příliš rychle mění a půl roku staré drivery už s ním nejsou kompatibilní (Linux). Open source drivery mají tu výhodu, že když někdo změní driver interface (to se děje neustále), tak zároveň upraví zdroják klidně i 10 driverů naráz, aby fungovaly i nadále.
VladR napsal: |
Posli nejaky link, kde sumarizuju ako to zacat, je to zaujimave. |
Nemám link. Prostě stáhneš zdrojáky projektu Mesa a začneš psát kód. Projektu šéfuje VMWare, drivery si tam vyvijí Intel, AMD/ATI, Redhat a dobrovolníci (nadšenci). VMWare má pod kontrolou celou infrastrukturu a píše dost kódu, který mohou používat různý drivery. Redhat má 2 zaměstnance alokovaný jako výpomoc pro AMD a nějaký další zaměstance na reverse-engineering NVIDIA driverů (jde jim to dost dobře). Je to objektový a v čistým C.
Dokumentace ke všem DX9 a DX10 GPU od ATI je dostupná free (třeba http://www.x.org/docs/AMD/ ), k DX11 GPU se teprve píše. Ze začátku možná není snadné se v ní vyznat. Ke GPU od Intelu je dokumentace asi taky, ale nevím kde.
Je tam víc infrastruktur, pro které můžeš psát drivery, ale je lepší používat tu nejnovější tj. Gallium3D. To funguje tak, že každý driver dělí na 3 části:
- winsys (1-2k LoC).: Správa paměti a odesílání příkazů na GPU, obvykle přímá komunikace s kernelem.
- pipe driver (10k-30k LoC): Implementuje 3D API podobné D3D9 a D3D10 bez fixed-function pipeline. Pipe driver typicky generuje command stream pro GPU command processor, používá přímo winsys a může používat pomocné moduly (např. software vertex processing, když hardware nemá vertex processor). Obsahuje taky shader compiler a optimizer, který dostává shader v nějakém pseudo-assembleru a převádí ho do strojového kódu, to je asi nejtěžší část. Generování samotného command streamu je už docela jednoduchá, přímočará (a zajímavá!) záležitost.
- state tracker (10k-1M LoC): Implementuje nějaké API nad pipe driver interface a winsys interface. Právě je tam OpenGL, OpenCL, OpenGL ES, OpenVG, X.Org 2D/Video akcelerace. VMWare tvrdí, že mají i Direct3D9 state tracker a winsys pro Windows, ale že zdrojáky neuvolní.
Tyhle 3 části složíš a máš driver. Když dám dohromady třeba Linuxový winsys pro Radeony, pipe driver pro DX9 Radeony a OpenGL state tracker, dostanu kompletní OpenGL 3D driver pro Linux a DX9 Radeony. Volitelně můžeš zkompilovat více driverů do jednoho (třeba všechny Radeon drivery), a konkretní pipe driver si vybereš ve winsys třeba podle Device ID.
VladR napsal: |
Kto ti to tam kontroluje, resp. ake automatizovane Q&A na tie drivery je ? |
Pro OpenGL máme piglit, obsahuje automatizovaných asi 170 testů grafiky a přes 400 testů GLSL a ASM compileru. V mesa/progs jsou pak neautomatizované testy tj. dema (nejenom pro OpenGL). Jinak já ještě testuju nějaké hry (Enemy Territory, Quake 3). Driver se dá snadno debugovat, protože je to jenom knihovna, např. rozhážu si v driveru breakpointy a spustím Quake 3.
Do QA taky patří review zdrojáků. Změny mimo driver nebo změny, kterými si nejsem jistý, se obvykle posílají na mailing list, kde se k tomu několik lidí obvykle vyjádří. V rámci driveru to záleží na domluvě, ale jelikož ještě nemám commit access, všechny moje zdrojáky jdou přes jednoho kolegu a jako committer samozřejmě bere zodpovědnost za to, co commituje. Výjimečně se commity vrací k přepracování nebo dokonce odmítají (sen každého vývojáře ).
VladR napsal: |
Okrem ineho aj preto, ze pisaci driverov su nechutne dobre plateni  |
O tom nevím, ale vím, že kdybych to chtěl dělat za prachy, musel bych asi vycestovat. V ČR možná v Brně v Redhatu. _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
 |
VladR
Založen: 30. 07. 2007 Příspěvky: 1322 Bydliště: Greater New York City Area
|
Zaslal: 5. leden 2010, 19:42:27 Předmět: |
|
|
Obavam sa, ze toto je najzaujimavejsi post, ktory sa za posledne (aj nasledovne) 3 roky v Popelnici objavi(l)
U mna to dokonca zaujmom predci aj pracu v Inteli, lebo ja mozem take to low-level brutalne piplanie
K tym platom - to bolo myslene v porovnani s hernymi developermi.
Nejaky start-up mimo gamedev ti kludne da aj o 30% vyssi plat (ale stabilitu ma nulovu, na rozdiel od AMD/nVidie).
Cize, ak to chapem spravne, tak v tych driveroch kludne mozes aj sam nejaku funkcionalitu zoptimalizovat, aby bezala pre usera na karte rychlejsie, tak ? Kolko kodu je v ASM ?
Pozeram, ze tam ide pisat aj driver pre Intelacky gfx chipset- to je zaujimave. |
|
Návrat nahoru |
|
 |
pcmaster

Založen: 28. 07. 2007 Příspěvky: 1827
|
Zaslal: 5. leden 2010, 20:32:00 Předmět: |
|
|
Na GDS typek z nVidie hovoril, ze ludi ako Eosie urcite chcu na fulltime vyvoj, myslim ze niekde v Svajciarsku (pevne dufajme, ze v nejakom kantone, kde hovoria ludskym jazykom, rozumej nemeckom kantone ). Eo - smelo do toho! (no joke) _________________ Off-topic flame-war addict since the very beginning. Registered since Oct. 2003!
Interproductum fimi omne est. |
|
Návrat nahoru |
|
 |
Marek

Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 5. leden 2010, 20:53:38 Předmět: |
|
|
VladR napsal: |
Cize, ak to chapem spravne, tak v tych driveroch kludne mozes aj sam nejaku funkcionalitu zoptimalizovat, aby bezala pre usera na karte rychlejsie? |
Přesně tak. Hardware je tady pro tebe 3D API a máš docela volnost (v cestě ti budou stát akorát týpci, co na tom dělají s tebou ). HW nemusí podporovat úplně všechno, takže musíme některé věci simulovat vkládáním dodatečných instrukcí do shaderu (např. shadow samplery v OpenGL).
VladR napsal: |
Kolko kodu je v ASM ? |
Žádný, píšeme to v čistým C s ručním ale velmi elegantním OOP. Příkazy na GPU včetně shaderů se posílají v poli, které naplníš předem danýma konstantama. Můžeš si klidně udělat parser na command stream a podívat se, co oficiální ATI drivery posílají na GPU (kernel to může odposlouchávat) a inspirovat se.
VladR napsal: |
Pozeram, ze tam ide pisat aj driver pre Intelacky gfx chipset- to je zaujimave. |
Můžeš dělat i drivery pro NVIDIA hw. Reverse-engineering není tak těžkej. Změníš třeba jeden stav v OpenGL a podíváš se, kterej registr se změnil v command streamu na jakou hodnotu. Hodně bádání a hodně sraní, ovšem nemálo lidí to dělá a hodně úspěšně. _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
 |
Vozka

Založen: 28. 07. 2007 Příspěvky: 229
|
Zaslal: 5. leden 2010, 21:25:40 Předmět: |
|
|
Já ty informace od Eosieho taky oceňuju, ale nechtěl by to nějaký mod splitnout? Je to dost OT a původní topic mi v tuhle chvíli na to přijde moc aktuální. |
|
Návrat nahoru |
|
 |
frca

Založen: 28. 07. 2007 Příspěvky: 1561
|
Zaslal: 5. leden 2010, 21:39:00 Předmět: |
|
|
Eosie: Na kterou řadu grafáren vyvíjíš ovladače ty? Na tu starší (tuším, že r300), kde už neexistuje proprietární alternativa, nebo na nějakou novější, pro kterou jsou i proprietární ovladače? _________________ www.FRANTICWARE.com |
|
Návrat nahoru |
|
 |
Marek

Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 5. leden 2010, 22:54:33 Předmět: |
|
|
r3xx-r5xx, tj ta starší. Ale v distribucích to nenajdeš, Gallium3D je docela v plenkách, ovšem už teď má víc funkcí než cokoliv jinýho open source (první ATI GL2.1 open source driver) a běhá nám tam čímdál víc her (před týdnem se tam objevila podpora geometry shaderů a VMWare nás nutí je podporovat přes software vertex processing, to tam už je taky implementovaný v modulu, jenom to nepoužíváme). Nicméně kolega už začal dělat na r6xx-r8xx driveru (Radeon HD) a já se k němu připojím, až budu mít to GPU. Jeden týpek z AMD prohlásil, že by se taky přidal.  _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
 |
Fila
Založen: 31. 07. 2007 Příspěvky: 853
|
Zaslal: 6. leden 2010, 01:17:10 Předmět: |
|
|
pcmaster napsal: |
Na GDS typek z nVidie hovoril, ze ludi ako Eosie urcite chcu na fulltime vyvoj, myslim ze niekde v Svajciarsku (pevne dufajme, ze v nejakom kantone, kde hovoria ludskym jazykom, rozumej nemeckom kantone ). Eo - smelo do toho! (no joke) |
Zadne takove, Eosie ted bude makat pulrok v INRIA a pak jej chci vyuzivat jeste ja . |
|
Návrat nahoru |
|
 |
|