Forum » Programiranje » OpenGL v asmju?
OpenGL v asmju?
hatch ::
Je kdo morda ze kaj probaval v tej smeri? Le tako, bi lahko naredil ultimativen test za graficne kartice, saj bi eliminirali faktor slabih driverjev.
Senitel ::
Uf... Ko sem prebral topic sem mislu, da mi bo vse jasno...
Sedaj mi ni nič jasno...
Če te prav razumem bi rad napisal ta ultimativen test v assemblerju, ter se tako izognil driverjem?? To se seveda da nardit, samo neboš imel zraven ne DirectX-a ne OpenGL-a... DirectX in OpenGL sta dva API-ja in sta med 3D engine-om (samo aplikacijo) in med driverjem. Sama kartica pa nima pojma kaj sta to OpenGL in DirectX, ker ji v bistvu samo driver pošilja inštrukcije... Samega OpenGL-a pa nemoreš "klicat" direktno na grafično.
Sedaj mi ni nič jasno...
Če te prav razumem bi rad napisal ta ultimativen test v assemblerju, ter se tako izognil driverjem?? To se seveda da nardit, samo neboš imel zraven ne DirectX-a ne OpenGL-a... DirectX in OpenGL sta dva API-ja in sta med 3D engine-om (samo aplikacijo) in med driverjem. Sama kartica pa nima pojma kaj sta to OpenGL in DirectX, ker ji v bistvu samo driver pošilja inštrukcije... Samega OpenGL-a pa nemoreš "klicat" direktno na grafično.
hatch ::
Graficna ima pac podprte funkcije OpenGL apija...
Le zakaj bi potem rabil graficno, ki ima DX8 support... kot pravis je to samo stvar driverja?
Le zakaj bi potem rabil graficno, ki ima DX8 support... kot pravis je to samo stvar driverja?
NoUse4AName ::
ni samo stvar driverja, openGl in d3d funkcije so podprte hardwarsko ampak ima vsaka graficna to nareto na svoj nacin. Zato bi tale program moral bit cisto nanovo napisat za cisto vsako graficno in bi moral vedet natancno kako dela vsaka graficna.
andrej ::
jaz ne vidim prednosti taksnega testa. Kaj ti pomaga ultra hiter cip, ce driverji in druga programska oprema tega ne izkorisca. Ceprav bi ti tak program povedal kaj o zmogljivosti cipa, ne bi bil splosno uporaben in realen.
GaPe ::
Itak da je prednost, če narediš tester v asm-ju. Se pozna na hitrosti, je pa res da je to zelo zakomplicirano.
Don't steal! The government hates competition.
^cyer3d ::
Ce bi ze hotu nadomestit driverje s swojo kodo, pol je najbols da napises swoje driverje, npr. za DirectX lohka download DDK(Device Driver Kit) in pol lohka nardis driverje s svojo kodo. Ko mas use narejen, updates sistem in pol uporablas funkcije DirectXa, ki pa laufajo prek twoje kode(driverja). Seveda je to cista izguba casa, razen ce si placan big money bucks:), raj se nauc uporablat DirectX 8 API, in optimiziri raj kodo, ki pade na 80x86 compatible processor.
hatch ::
Dej ne ga srat.. direct3d je 10x pocasnejsi, kot bi lahko bil... watereffect z 10.000 trikotniki... in je fps pod 10 hvala lepa.
^cyer3d ::
hatch,
ce je kaj slabo so to driverji, glede API je DirectX nekak suckal vse dokler ni prisel DirectX 8. Ceprav ima OpenGL se prednost(par funkcij DirectX ne podpira se, ki pa so podprte pod OpenGL) je DirectX 8 definitivno boljsi od OpenGL kot API. Je pa res da ni portabilen, vendar se bo to tudi zgodil enkrat(men osebno je cist usen tut ce se ne:). Direct3D 8 se z lahkoto kosa z OpenGL, ostale komponente so pa itak uber-all-das-beste. Ce je ze kej gnilo pol so to driverji, sam grem stavt, da Detonatorji 12 pod G-force2 zmorejo vec kot 10 slikc za tist tvoj efekt.
Nauk: ne jest banan
ce je kaj slabo so to driverji, glede API je DirectX nekak suckal vse dokler ni prisel DirectX 8. Ceprav ima OpenGL se prednost(par funkcij DirectX ne podpira se, ki pa so podprte pod OpenGL) je DirectX 8 definitivno boljsi od OpenGL kot API. Je pa res da ni portabilen, vendar se bo to tudi zgodil enkrat(men osebno je cist usen tut ce se ne:). Direct3D 8 se z lahkoto kosa z OpenGL, ostale komponente so pa itak uber-all-das-beste. Ce je ze kej gnilo pol so to driverji, sam grem stavt, da Detonatorji 12 pod G-force2 zmorejo vec kot 10 slikc za tist tvoj efekt.
Nauk: ne jest banan
Tr0n ::
Jah, en del drajvera mora bit v strojni kodi. Drugace ne mores dostopat do novih funkcij cipov.
Senitel ::
Najprej kar se tiče OpenGL-a in DirectX-a. OpenGL je bil definitivno boljši od DirectX-a, dokler ni DX prišel do verzije 7.0. DirectX 8.0 je pa po mojem mnenju kar se samega API-ja tiče boljši od OpenGL-a. Res, da je vse, kar je podprto v DX-u podprto tudi v OpenGL preko extension-ov, vendar so ti extension-i zelo nestandardni (zadnji "uradno" podprti extension je GL_ARB_MULTITEXTURE). In te lenobe v ARB-ju, ki se nikamor ne zmigajo delajo OpenGL-u veliko škodo (če ne bi bilo NVidie z vsemi SPECIFIČNO njihovimi extension-i...). Je pa OpenGL praktično na vseh sistemih, kar lahko v trenutku odstrani vse prednosti DirectX-a... Vendar se s tem kaj je boljše OpenGL ali DirectX (upam) ne bomo več ubadali, OK?
Kar se osnovne ideje tiče, je izvedljiva samo v teoriji. V praksi pa bi rabil specifične nabore ukazov za VSAK grafični čip posebej. Grafični čip seveda zna določene ukaze izvajati strojno, vendar brez driverja ni muzike... DirectX (ali OpenGL) sta sama po sebi DOVOLJ hitra. Tudi driverji so DOVOLJ hitri. Problem, ki se nehote pojavlja pri nekaterih programerjih je to, da nevedo, kaj dela program... Če ti na GeForce-u ali Radeon-u zabiješ 90% vsega časa v API-ju, potem je definitivno nekaj zelo hudo narobe s tabo (oziroma s tvojim programom). Grafični čipi (GeForce, Radeon) so definitivno najhitrejši in najbolj paralerizirani deli strojne opreme za PC-je. Vendar če program tega ne izkoristi nam to nič ne pomaga. Če ti za vsak trikotnik posebej kličeš lpDevice->DrawPrimitive (ali v OpenGL-u glBegin, glEnd) potem boš jasno pristal pri tem, da ti bo vse skupaj čakalo na API... Profesionalni pogoni zabijejo več kot 90% časa v kodi, ki NI vezana na API. Seveda je v primeru, da nimaš hardware t&l kartice zelo težko ugotoviti, kje v bistvu izgubljaš čas (ker na teh karticah se lpDevice->DrawPrimitive vrne šele ko se vsi trikotniki transformirajo in pošljejo na kartico - slow).
Zdej pravit, da je Direct3D 10x počasnejši, kot bi lahko bil je pa čista neumnost. Direct3D je v bistvu samo en "abstract base class", ki ga programer uporablja, driver mu pa nudi implementacijo... Če bi preskočil Direct3D in šel pisat direktno za grafični čip pa bi profitiral maksimalno 1 do 2 fps-ja in en kup težav. Za vse ostale pa obstaja na Internetu vsaj ene 2 CD-ja prezentacij in white papersov na temo takšnih optimizacij...
Kar se osnovne ideje tiče, je izvedljiva samo v teoriji. V praksi pa bi rabil specifične nabore ukazov za VSAK grafični čip posebej. Grafični čip seveda zna določene ukaze izvajati strojno, vendar brez driverja ni muzike... DirectX (ali OpenGL) sta sama po sebi DOVOLJ hitra. Tudi driverji so DOVOLJ hitri. Problem, ki se nehote pojavlja pri nekaterih programerjih je to, da nevedo, kaj dela program... Če ti na GeForce-u ali Radeon-u zabiješ 90% vsega časa v API-ju, potem je definitivno nekaj zelo hudo narobe s tabo (oziroma s tvojim programom). Grafični čipi (GeForce, Radeon) so definitivno najhitrejši in najbolj paralerizirani deli strojne opreme za PC-je. Vendar če program tega ne izkoristi nam to nič ne pomaga. Če ti za vsak trikotnik posebej kličeš lpDevice->DrawPrimitive (ali v OpenGL-u glBegin, glEnd) potem boš jasno pristal pri tem, da ti bo vse skupaj čakalo na API... Profesionalni pogoni zabijejo več kot 90% časa v kodi, ki NI vezana na API. Seveda je v primeru, da nimaš hardware t&l kartice zelo težko ugotoviti, kje v bistvu izgubljaš čas (ker na teh karticah se lpDevice->DrawPrimitive vrne šele ko se vsi trikotniki transformirajo in pošljejo na kartico - slow).
Zdej pravit, da je Direct3D 10x počasnejši, kot bi lahko bil je pa čista neumnost. Direct3D je v bistvu samo en "abstract base class", ki ga programer uporablja, driver mu pa nudi implementacijo... Če bi preskočil Direct3D in šel pisat direktno za grafični čip pa bi profitiral maksimalno 1 do 2 fps-ja in en kup težav. Za vse ostale pa obstaja na Internetu vsaj ene 2 CD-ja prezentacij in white papersov na temo takšnih optimizacij...
^cyer3d ::
Se strinjam s Senitelom 100%. Tisti, ki dela pod DirectX 8 ve kaj je dobr. Razen ljudi k hocjo portabilnost na druge OS. DirectX je pac premagu OpenGL, sicer je res, da Doom3 bo tudi laufu pod OpenGL, sam usak pa tut ni John Carmack ane.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Valve izdal SteamOS in predstavil prototip Steam Machine in Steam ControllerOddelek: Novice / Konzole | 15470 (10476) | Testman42 |
» | Resnična Resničnost: Linux (strani: 1 2 3 )Oddelek: Novice / RTV Slo | 13970 (8740) | smihael |
» | Nov članek: Čudežno popotovanje skozi grafični cevovod - 2. delOddelek: Novice / Nova vsebina | 4780 (3534) | SavoKovac |
» | Test grafičnih kartOddelek: Zvok in slika | 1555 (1250) | kuglvinkl |