.[ ČeskéHry.cz ].
Lagy už v primitivních aplikacích - D3D, C++
Jdi na stránku 1, 2  Další
 
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
prophet tx-7



Založen: 14. 09. 2009
Příspěvky: 2

PříspěvekZaslal: 14. září 2009, 20:02:00    Předmět: Lagy už v primitivních aplikacích - D3D, C++ Odpovědět s citátem

Mám velmi jednoduchou aplikaci, využívající DXUT - načte 3 primitivní objekty z x-souboru, poté je vykresluje, dva se hýbou (samozřejmě pomocí world matrixu). Problém je, že i ta se mírně seká na slabších PC (a např. DOOM3 na nich běží plynuje na poměrně dosti slušné detaily - pro srovnání). Původně byla bez DXUT, problém stejný. Absolutně netuším co s tím Crying or Very sad

Zdrojový kód (celé solution pro VS2008) včetně x souborů zde.

Na PC mám DX SDK August 2006 a March 2008, zkoušel jsem kompilovat s oběma verzema (přenastavením cest ve VC++ Directiories), problém stejný. Ačkoliv verze 2006 se mi zdá poměrně stará, téměř na žádném pc nejsou potřebné DLL knihovny, mám zkusit ještě starší verzi, mohlo by to být tím?

Nebo třeba špatně vytvořené D3D device?

Stejný problém jsem měl (respektive stále mám) i při vývoji jednoduchého arkanoidu - manuální použití vertex + index bufferu a poté vykreslování pomocí DrawIndexedPrimitive.


Díky moc.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Yahoo Messenger
Marek



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

PříspěvekZaslal: 15. září 2009, 01:29:34    Předmět: Odpovědět s citátem

Jaké máš fps?
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VladR



Založen: 30. 07. 2007
Příspěvky: 1322
Bydliště: Greater New York City Area

PříspěvekZaslal: 15. září 2009, 01:39:04    Předmět: Odpovědět s citátem

Moznosti je mnoho, namatkovo zopar - nastrel od boku:

1. HAL/REF?
2. PureDevice ? SW/HW Vertex Processing ?
3. VSync ?
4. VB/IB fill every single frame ?
5. CPU-hungry external apps (IE/Opera/defrag/virusscan/) ?
6. Sleep (250) ?
7. Extensive post-processing ?
8. GFX Karta ? RIVA TNT 1 4 MB ? S3 Trio 3D 2 MB ?
9. Velkost VB/IB ? Na starsich gfx chipsetoch je bezne, ze DIP ti zahlti CPU aj pri puhych 4 renderovanych triangloch. Staci, ze CPU transformuje 500.000 vertexov vo VB s pomerne narocnym shaderom.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Marek



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

PříspěvekZaslal: 15. září 2009, 02:59:43    Předmět: Odpovědět s citátem

Mně osobně se různé dema někdy trhají a to i když reportují vysoké fps. Trhání je hodně nedeterministické. Někdy to spraví fullscreen, zkusil bych první jej. Na vině asi bude plánovač procesů, vytížení CPU programama na pozadí, jinak nevím. Spuštěný přehrávač hudby na pozadí mi občas i v OpenGL způsobuje mírné trhání, ovšem DirectX tím trpí daleko častěji, aspoň u mě.
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
am!go



Založen: 19. 08. 2007
Příspěvky: 61
Bydliště: Praha

PříspěvekZaslal: 15. září 2009, 10:39:33    Předmět: Odpovědět s citátem

Kromě výše zmíněnýho si určitě zapni DX v debug režimu a podívej se, jestli si to někde nestěžuje.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
prophet tx-7



Založen: 14. 09. 2009
Příspěvky: 2

PříspěvekZaslal: 15. září 2009, 14:39:00    Předmět: Odpovědět s citátem

Nainstaloval jsem DX Summer 2004, nemohl jsem použít DXUT (spoustu věcí tam chybí), použil jsem tedy původní verzi bez DXUT... aplikace jde nyní spustit prakticky na každém PC, nicméně problém zůstává stále stejný Sad

FPS - Prakticky pořád 60 (V-Sync).. Přidal jsem do kódu MessageBeep, aby to píplo pokaždé, když klesne pod 35 a je pravda, že při každém zádrhelu to pípne



VladR napsal:
...

1) Zařízení tvořím s D3DDEVTYPE_HAL.. Pure Device? Nevím o co se jedná - nastuduju
2) původně SW Vertex Processing, zkoušel jsem i HW, ale žádná změna Sad
3) Nic jsem nenastavoval, takže v-sync zapnutý (i FPS odpovídají)
4) v Arkanoidu jsem plnil VB prakticky v každém framu (ale byl vytvořen dynamický), později jsem to předělal na používání matic, v současném projektu s VB manuálně nepracuji (v renderu jen vykresluji pomocí DrawSubset a přenastavuji v každém frameu Worldmatrix pro zajištění pohybu)
5) ať tak či tak, výsledek je stejný (a jiné mnohem složitější aplikace běží s nimy plynule)
6) Jak to myslíš?
7) Aplikace je primitivní.. žádné shadery ani nic podobné, jendá se opravdu o základní aplikaci
Cool Bohužel se sekání projevuje i jen na pár let starých grafikách (ve škole na 9500 od nvidie ), ale např. na 4500HD (Pentium Dualcore, 2GB ram) jde prakticky plně plynule, což také není rozhodně žádný zázrak.. jak jsem říkal, na těch grafikách běží jiné hry, s mnohem větším množstvím objektů a mnohem složitějšími objekty
9)Odpověď snad vyplyne z výše psaného Smile



am!go napsal:
...

Myslíš jen zkompilovat ve VS s debug nastavením a dívat se co to hlásí, nebo nějaké spešl debug nástroje pro DX?



Děkuji všem
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Yahoo Messenger
Juraj



Založen: 06. 12. 2007
Příspěvky: 189

PříspěvekZaslal: 17. září 2009, 06:26:44    Předmět: Odpovědět s citátem

Přihodím sem i svojí zkušenost když jsem dělal v DX. Konkrétně jsem vykresloval terén za pomocí IB a VB. Pokud jsem ovšem měl IB v datovém typu INT32 měl jsem zhruba 30 FPS, když jsem pouze přehodil datový typ na INT16, FPS se mi zvíšili 2x tedy na 60.

Tuto výraznou změnu jsem pozoroval hlavně na starších a "slabších" strojích...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
VladR



Založen: 30. 07. 2007
Příspěvky: 1322
Bydliště: Greater New York City Area

PříspěvekZaslal: 17. září 2009, 07:27:49    Předmět: Odpovědět s citátem

Juraj napsal:
Pokud jsem ovšem měl IB v datovém typu INT32 měl jsem zhruba 30 FPS, když jsem pouze přehodil datový typ na INT16, FPS se mi zvíšili 2x tedy na 60.

Tuto výraznou změnu jsem pozoroval hlavně na starších a "slabších" strojích...
Strasne by ma zaujimalo o ake karty sa jednalo.

Ja som podobny benchmark robil s kvantom low-end kariet, pocinajuc RIVA TNT1 az po rozne exoticke integrovane chipsety v ntb, a zriedka ten rozdiel prekrocil 10%.
100% sa mi nechce verit a uz vobec nie 30 fps vs 60 fps, tam je to obrovska doba.
Pretoze, aj keby si vymakol threshold, kedy si presne na hrane vyuzita VRAM, tak tych par MB si driver odswapuje, ale teba sa to temer nijak nedotkne po vykonovej stranke.
Teda, jedineze mas zapnuty VSYNC, ale tak hadam take zverstvo by si nerobil, ze zapnes VSYNC a porovnavas rozdiel vo vykone aplikacie, no nie ?

prophet : pastni nejaky kod, skutocne nebudem loadovat nejaky projekt a debugovat ho, pozrieme sa na to tuna. zacni renderovanim
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Augi



Založen: 28. 07. 2007
Příspěvky: 782
Bydliště: Čerčany

PříspěvekZaslal: 17. září 2009, 09:01:02    Předmět: Odpovědět s citátem

VladR napsal:
Juraj napsal:
Pokud jsem ovšem měl IB v datovém typu INT32 měl jsem zhruba 30 FPS, když jsem pouze přehodil datový typ na INT16, FPS se mi zvíšili 2x tedy na 60.

Tuto výraznou změnu jsem pozoroval hlavně na starších a "slabších" strojích...
Strasne by ma zaujimalo o ake karty sa jednalo.
Já jsem stejné chování zaznamenal kdysi v počátcích mých hrátek s 3D grafikou, karta to byla 3Dfx Voodoo Banchee Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
VladR



Založen: 30. 07. 2007
Příspěvky: 1322
Bydliště: Greater New York City Area

PříspěvekZaslal: 17. září 2009, 10:09:48    Předmět: Odpovědět s citátem

Bez mucenia sa priznavam, ze 3dfx som v stroji uz davno nemal, ked som zacal s kodenim 3d grafiky, takze tam to mozno mohlo tak vyzniet.

Mimo toho, tam vobec niekedy boli funkcne DX drivery ? Ved to malo iba vlastnu implementaciu OGL (nazov ktorej mi v tento moment vypadol).

Inak, ani zopar 64-bit osekanych kariet typu GF2MX na PCI zbernici to nevykazovalo.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Augi



Založen: 28. 07. 2007
Příspěvky: 782
Bydliště: Čerčany

PříspěvekZaslal: 17. září 2009, 10:35:34    Předmět: Odpovědět s citátem

No na 100 % jsem tam kódil v DX 8.1 a hardware rendering mi běhal v pohodě...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Mem



Založen: 28. 07. 2007
Příspěvky: 1959
Bydliště: Olomouc

PříspěvekZaslal: 17. září 2009, 11:26:00    Předmět: Odpovědět s citátem

VladR, Augi: no tak zrovna 30 a 60 fps je snad problém jasný - vůbec nemusí jít o navýšení výkonu o 100 %, ale klidně to mohlo stíhat předtím 61 fps a poté 55 fps a kvůli čekání na VR to spadlo rovnou na půlku... takže autor by měl především VR vypnout a pak může zkoušet něco měřit Smile
_________________
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Augi



Založen: 28. 07. 2007
Příspěvky: 782
Bydliště: Čerčany

PříspěvekZaslal: 17. září 2009, 11:43:17    Předmět: Odpovědět s citátem

Ale v mém případě jsem s tímhle problém neměl Wink
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. září 2009, 11:57:23    Předmět: Odpovědět s citátem

30fps je ještě bezpečný realtime a některé hry se na toto fps dokonce fixují (Spore). Aby oko vidělo trhání, muselo by fps být pod 16. Mozek ale cítí latence při zobrazení u 30fps docela zřetělně (33ms). Zkusil autor threadu vůbec rady, jaké jsem mu napsal?

VladR napsal:
Mimo toho, tam vobec niekedy boli funkcne DX drivery ? Ved to malo iba vlastnu implementaciu OGL (nazov ktorej mi v tento moment vypadol).

GLIDE mělo hodně daleko od GL, bylo to jen další 3D API, nic víc. Nějaké DX5/6 drivery tam taky byly.
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VladR



Založen: 30. 07. 2007
Příspěvky: 1322
Bydliště: Greater New York City Area

PříspěvekZaslal: 17. září 2009, 12:06:53    Předmět: Odpovědět s citátem

Mem napsal:
VladR, Augi: no tak zrovna 30 a 60 fps je snad problém jasný - vůbec nemusí jít o navýšení výkonu o 100 %, ale klidně to mohlo stíhat předtím 61 fps a poté 55 fps a kvůli čekání na VR to spadlo rovnou na půlku
No ved presne na to som narazal tym VSync zverstvom.

Eosie : Ten Glide osobne nepoznam, len si spominam ako to par ludi opisovalo ako API podobne OGL.
Tie DX drivery ma dost zmiatli. To budu asi tie neoficialne od ludi co povodne pracovali pre 3DFX.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
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
Jdi na stránku 1, 2  Další
Strana 1 z 2

 
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