.[ ČeskéHry.cz ].
Direct3D - pomalé vykreslování

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
Cece



Založen: 28. 07. 2007
Příspěvky: 26
Bydliště: Skoro Brno

PříspěvekZaslal: 17. říjen 2007, 20:11:48    Předmět: Direct3D - pomalé vykreslování Odpovědět s citátem

Zdravím,
jako projekt do školy jsem si neprozřetelně vybral porovnání výkonu OpenGL a Direct3D (se kterýma mám malé zkušenosti Sad ).
Po několika dnech mám program vykreslující tutéž scénu podobnými prostředky (mimo jiné vertex buffery), ale Directy mají podezřele špatné výsledky. OpenGL má téměř dvojnásobně větší FPS.

Snažil jsem se, aby obě varianty byly co nejpodobnější (i co se týče struktury a volání funkcí), vykresluji asi 200 tisíc trojúhelníku s jednou texturou a dvěma světly.

Tady přikládám spustitelný EXE a zdrojáky, snad si někdo všimne, co je špatně, předem děkuji za jakékoliv podněty:
http://www.stud.fit.vutbr.cz/~xrehan00/BenchmarkCece.zip
(zdrojáky nejsou zrovna ukázkově přehledné, ale snad to půjde pochopit Smile )
_________________
Co můžeš udělat dnes, tak to raději udělej, nebo bys na to do zítřka zapomněl.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky  
frca



Založen: 28. 07. 2007
Příspěvky: 1561

PříspěvekZaslal: 17. říjen 2007, 21:22:40    Předmět: Odpovědět s citátem

Předpokládám, že chceš porovnávat optimalizaci konkrétních ovladačů pro dané API, jinak Laughing
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky  
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 17. říjen 2007, 21:23:46    Předmět: Odpovědět s citátem

Tento test nema moc velky vyznam. Ten vykon by mel byt priblizne stejny, jinak delas neco spatne. Uvnitr driveru stejne OpenGL i Direct3D pouzivaji spolecny interni interface (minimalne na Vista), ktery pak komunikuje s hardwarem. Maximalne tam najdes, ktera cast 3D API neni podporovana primo a driver to resi jinak, sloziteji. Overis jen kvalitu driveru, nic vic.

Kdyz budes pouzivat hodne draw-callu (tisic a vic), OpenGL z toho vyjde lepe, protoze jede v user space, zatimco D3D9 jede v kernel space a trochu tim trpi.
_________________
AMD Open Source Graphics Driver Developer


Naposledy upravil Marek dne 18. říjen 2007, 03:24:52, celkově upraveno 1 krát
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu  
ICQ
Cece



Založen: 28. 07. 2007
Příspěvky: 26
Bydliště: Skoro Brno

PříspěvekZaslal: 17. říjen 2007, 22:14:48    Předmět: Odpovědět s citátem

Přirozeně je pokaždé závěr takového porovnání, že je to záležitost ovladačů a použití knihoven.
Hlavní otázkou je, kde mám chybu Wink
(částečně jsem to vylepšil zapnutím D3DCREATE_HARDWARE_VERTEXPROCESSING Embarassed )
_________________
Co můžeš udělat dnes, tak to raději udělej, nebo bys na to do zítřka zapomněl.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky  
MePHyst0



Založen: 28. 07. 2007
Příspěvky: 85
Bydliště: SVK/CZK

PříspěvekZaslal: 17. říjen 2007, 22:15:32    Předmět: Odpovědět s citátem

Eosie napsal:
Tento test nema moc velky vyznam. Ten vykon by mel byt priblizne stejny, jinak delas neco spatne. Uvnitr driveru stejne OpenGL i Direct3D pouzivaji spolecny interni interface, ktery pak komunikuje s hardwarem. Maximalne tam najdes, ktera cast 3D API neni podporovana primo a driver to resi jinak, sloziteji. Overis jen kvalitu driveru, nic vic.

Kdyz budes pouzivat hodne draw-callu (tisic a vic), OpenGL z toho vyjde lepe, protoze jede v user space, zatimco D3D9 jede v kernel space a dost tim trpi.


nemelo by to byt spis opacne?d3d ide v user mode, ked sa naplni command queue tak sa prepne do kernel(toto trva vacsnost)...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail  
ICQ
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 18. říjen 2007, 03:24:01    Předmět: Odpovědět s citátem

MePHyst0 napsal:
nemelo by to byt spis opacne?d3d ide v user mode, ked sa naplni command queue tak sa prepne do kernel(toto trva vacsnost)...

God knows. Nejde ani tak o 3D API jako o driver. Ten musi v pripade D3D bezet v kernel modu (proto to tak trva asi), zatimco v GL jeho vetsi cast bezi v user modu. (v tomto white paperu viz predevsim graf "Figure 3" na strane 5)
Asi nenajdu vsechny prispevky ve vsech diskuzich, odkud jsem cerpal, nez jsem dosel k tomuto nazoru (mozna trochu prehnanemu - oprava vyse). Na tento jsem si ted vzpomnel:

citace:
Also, you've got to remember that d3d is much slower for scenes of great complexity, such as engineering scenegraphs full of DCS'. To get reasonable performance from d3d all your data has to be static and/or dramatically pre-processed into the most batch optimal layout. In my business, that makes d3d a non-starter. I used to have 2 renderer implementations, GL and d3d9, but the d3d one performed so poorly with the same data as the GL implementation that it was never used and I stopped maintaining it.

Zdroj. Je fakt, ze tohle nema co delat s hrama a mozna ani D3D9 nebylo urceno pro ten ucel, jaky autor citace potreboval, takze to pro D3D9 programatory nemusi nic znamenat.
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu  
ICQ
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna