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

Založen: 29. 06. 2009 Příspěvky: 184 Bydliště: Písek / Plzeň
|
Zaslal: 11. červenec 2011, 16:08:39 Předmět: Řezení objektů |
|
|
Zdravím a mám pár dotazů ohledně sortingu:
(Používám OpenGL)
1)Co nejvíce z těchto věcí brzdí (přepnutí materiálu, shaderu, textury, vykreslení trojúhelníku z VBO, z RAM(poslání do GK))
2)V jakém pořadí sortujete vy
Předem díky za odpovědi. |
|
Návrat nahoru |
|
 |
pcmaster

Založen: 28. 07. 2007 Příspěvky: 1827
|
Zaslal: 11. červenec 2011, 16:34:48 Předmět: |
|
|
IMHO porovnavas dost neporovnatelne Textury a shadery sa ku kontextu realne pripoja imho az ked tie trojuholniky zacnes vykreslovat (to bude otazka drivera, snad to niekto objasni). Vykreslovanie z VBO je podla mna fakt najrychlejsia vec. Uploadovanie dat na kartu (textur, meshov) je urcite najpomalsie. Ja osobne by som v hre najprv zapojil shader, potom material a vykreslil vsetky objekty s touto kombinaciou. Ale presne dopady na vykon neviem
Ale vsetko velmi zalezi na tom, ake typy dat budes vykreslovat. Najpriklad v projekte, na ktorom robim teraz, vacsinou renderujeme velke mnozstvo meshov, kde kazdy ma uplne iny shader (tj aj ine vstupne textury typu shadowmapy, rozne screenspace textury, atd), uplne ine materialy (radovo 10-20 textur) a ako bonus sa casto (obcas aj kazdy frame!) meni jeho geometria (na CPU, ale to je iny pribeh) a tam si nepomozes skoro nijako  _________________ 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: 11. červenec 2011, 20:16:46 Předmět: |
|
|
U Direct3D bych si snad dokazál tipnout, které změny stavů nejvíc zpomalují.
U OpenGL to nejde jen tak určit. To API je dost komplexní a kód, který je potřeba na korektní převod OpenGL stavů do hardwarových stavů je netriviální, protože se tam motá hromada funkcí dohromady. Některé stavy se občas emulují přes shadery, což všechno zesložiťuje.
Nejvíc GPU výkonu rozhodně bere přepínaní framebufferů.
Nejvíc CPU výkonu asi bere přepínání shaderů.
BO (buffer object) může být fyzicky i v RAM a na výkonu se to nemusí projevit (hlavně když je bottleneck jinde). _________________ 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: 12. červenec 2011, 13:55:17 Předmět: |
|
|
Zhruba v tomto poradi:
1. RenderTarget
2. Textura
3. Shader
YMMV - zavisi to od tvojho aktualneho bottlenecku... |
|
Návrat nahoru |
|
 |
Poky

Založen: 29. 06. 2009 Příspěvky: 184 Bydliště: Písek / Plzeň
|
Zaslal: 12. červenec 2011, 14:31:29 Předmět: |
|
|
Díky, jenom možná takovej triviální dotaz, jak zjistim můj aktuální bottleneck  |
|
Návrat nahoru |
|
 |
pcmaster

Založen: 28. 07. 2007 Příspěvky: 1827
|
Zaslal: 12. červenec 2011, 14:32:01 Předmět: |
|
|
To sme mu teda velmi nepomohli
Ale urcite sa zhodneme na tom, ze by si to mal napisat aspon tak flexibilne, aby si mohol vyskusat rozne poradia vykreslovania a vybrat to najrychlejsie (imho tam ale podstatne rozdiely mat ani nebude). _________________ Off-topic flame-war addict since the very beginning. Registered since Oct. 2003!
Interproductum fimi omne est. |
|
Návrat nahoru |
|
 |
Poky

Založen: 29. 06. 2009 Příspěvky: 184 Bydliště: Písek / Plzeň
|
Zaslal: 12. červenec 2011, 14:32:48 Předmět: |
|
|
OK
EDIT: TADY jsem našel nějakou práci na měření výkonnosti |
|
Návrat nahoru |
|
 |
Deluxe

Založen: 31. 07. 2007 Příspěvky: 235 Bydliště: Oslavany
|
Zaslal: 12. červenec 2011, 15:45:01 Předmět: |
|
|
Mozna by se mohl hodit gDEBugger http://www.gremedy.com/. Nebo podobny nastroje od vyrobcu GPU. |
|
Návrat nahoru |
|
 |
VladR
Založen: 30. 07. 2007 Příspěvky: 1322 Bydliště: Greater New York City Area
|
Zaslal: 12. červenec 2011, 17:29:59 Předmět: |
|
|
No uplne na zaciatok by si mal zistit, ci si CPU / GPU bound.
Porovnaj vykon v 640x480 s 1680x1050 a hned to zistis.
Kedze Shader Units su uz dnes unifikovane, je celkom problem byt vertex-transform - bound, aj ked Triangle Setup stage vie stale este byt bottleneckom.
Pokial chces presne zistit, ktora cast GPU pipeline ide na doraz, pogoogluj si o tom nieco.
Skus napr. nvPerfHud.
Pokial ale mas vykon aky chces na HW akom chces, tak to proste neries. |
|
Návrat nahoru |
|
 |
|