Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
Buksy
Založen: 03. 01. 2009 Příspěvky: 19 Bydliště: KE
|
Zaslal: 4. leden 2009, 19:48:43 Předmět: pomale sdl_gl_swapBuffers |
|
|
dobry den
mam problem s sdl_gl_swapBuffers, pri vykreslovani jedneho trojuholnika cez SDL+opengl je moje fps okolo 25, ked ale vypnem SDL_GL_SwapBuffers skoci mi na 200, je normalne aby tato funkcia zrala tolko systemovych prostriedkov? tato funkcia mi bere az 30-40 milisekund
testoval som to takto:
printf("\t%d", SDL_GetTicks());
SDL_GL_SwapBuffers();
printf("\t%d", SDL_GetTicks());
nemate niekto nejake navrhy,cim by to mohlo byt ?
prikladam este opengl init a draw
kód: |
bool init(int width, int height)
{
glViewport(0, 0, width, height); // nastavime kde sa ma vykreslovat opengl
glClearColor(0.0f, 0.0f, 0.0f, 0.0f); // akou farbou mazat
glClearDepth(1.0); // viditelnost do hlbky
glDepthFunc(GL_LESS); // typ depth testu
glEnable(GL_DEPTH_TEST); // povolime depth test
glShadeModel(GL_SMOOTH); // povolime smooth color shading
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0f, (GLfloat)width/(GLfloat)height, 0.1f, 100.0f);
glMatrixMode(GL_MODELVIEW);
}
bool draw()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glTranslatef(0.0f, 0.0f, -20.0f);
glBegin(GL_POLYGON);
glVertex3f(2.0f, -1.0f, 0.0f);
glVertex3f(0.0f, 1.0f, 0.0f);
glVertex3f(-2.0f, -1.0f, 0.0f);
glEnd();
} |
|
|
Návrat nahoru |
|
|
nou
Založen: 28. 07. 2007 Příspěvky: 1047
|
Zaslal: 4. leden 2009, 21:08:00 Předmět: |
|
|
tu musim byt nieco velmi velmi zle. pretoze s prazdnou scenou mam FPS radovo v tisicoch.
ukaz SDL_SetVideoMode() _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
|
Buksy
Založen: 03. 01. 2009 Příspěvky: 19 Bydliště: KE
|
Zaslal: 4. leden 2009, 22:05:33 Předmět: |
|
|
Inicializacia SDL, depth davam ako nulu lebo to nastavi aktualny depth systemu, skusal som aj 32 a je to to iste
kód: |
int width = 800;
int height = 600;
int depth = 0;
namespace SDL
{
bool init()
{
if(::SDL_Init(SDL_INIT_VIDEO) < 0)
{
printf("Nepodarilo sa inicializovat sdl video");
return false;
}
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
if(::SDL_SetVideoMode(width, height, depth, SDL_OPENGL) == NULL)
{
printf("Nepodarilo sa inicializovat video mode");
SDL_Quit();
return false;
}
} |
pokial by ste chceli vidiet cely zdrojak (nie su tam akurat niektore triedy) tak som ho nahral sem http://nopaste.ceske-hry.cz/222639
PS:to fps radovo v tisic asi nedosiahnem nikdy ked mam stary pc (intel celeron 1,3gHz a geforce 2), no myslim ze minimalne toto by mal zvladnut vykreslit (ked mi aj napr max payne 2 ide bez sekania)
EDIT: prave som skusal aj printf("\n%s", SDL_GetError()); ale nepise to nic
EDIT2:pozeram nejake sdl zdrojaky,a nechapem aky je rozdiel medzi priamym volanim opengl funkcii, a
kód: |
glfuncs f;
init_glfuncs(&f);
f.glViewport(0,0,640,480);
f.glMatrixMode(GL_PROJECTION);
f.glLoadIdentity();
f.glOrtho(-100,100,-100,100,-500,500);
... |
ma to nejaky zmysel? je to rychlejsie ?
Naposledy upravil Buksy dne 4. leden 2009, 22:12:28, celkově upraveno 3 krát |
|
Návrat nahoru |
|
|
nou
Založen: 28. 07. 2007 Příspěvky: 1047
|
Zaslal: 5. leden 2009, 00:33:00 Předmět: |
|
|
nevyzera tam byt nic zavadne. skus co vypise tento kod.daj to do inicializacie OpenGL
kód: |
printf("Vendor: %s\n",glGetString(GL_VENDOR));
printf("Renderer: %s\n",glGetString(GL_RENDERER));
printf("Version: %s\n",glGetString(GL_VERSION)); |
pravdepodobne to je aby sa autorovi rychlejsie pisalo. niektore IDE po napisani f. vyhodia okienko kde su vsetky mozne funkcie ktore sa tam daju napisat a vybrat z nich takze je to rychlejsie na pisanie. _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
|
Marek
Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 5. leden 2009, 01:07:50 Předmět: |
|
|
GPU jede asynchroně a část driveru dnes už taky, takže měřit délku trvání SwapBuffers je asi jako měřit, jak dlouho jsem čekal na skončení vlákna (tzn. naměřený údaj je k ničemu a nic konkrétního neříká). Prohazování bufferů je jedna z operací, kde se provádí synchronizace mezi CPU a GPU (jeden čeká na druhého).
Dále GF2 nic neříká. Buď máš GF2Ti nebo GF2MX, mezi tím je velký rozdíl. _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
|
Buksy
Založen: 03. 01. 2009 Příspěvky: 19 Bydliště: KE
|
Zaslal: 5. leden 2009, 02:10:45 Předmět: |
|
|
eosie - GF2MX 400 ale nezdalo sa mi to podstatne lebo toto musi zvladnut ... pokial to teda nie je tym SwapBuffers,preco mam take nizke fps pri vykresleni jedneho trojuholnika ?
nou - tie printfi mi vyhodili toto:
Vendor: Microsoft Corporation
Renderer: GDI Generic
Version: 1.1.0 _________________ The Death is only beginning ! |
|
Návrat nahoru |
|
|
Tringi
Založen: 28. 07. 2007 Příspěvky: 290
|
Zaslal: 5. leden 2009, 02:45:10 Předmět: |
|
|
Tak to máš problém při inicializaci OpenGL (SDL), protože GDI Generic je softwarový renderer, a tam časy, které jsi uvedl, odpovídají. Tedy v tomto případě se akcelerace grafiky vůbec nepoužila.
Btw. GF2MX400 jsem měl jako první kartu, skvělá, nikdy na ni nezapomenu, hrál jsem na ni i Doom3, a zvládala tehdy až 10 milionů trojúhelníků za sekundu (bez T&L, textur a správně nasypaných, ovšem). _________________ WWW | GitHub | TW |
|
Návrat nahoru |
|
|
Marek
Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 5. leden 2009, 05:14:03 Předmět: |
|
|
Na to inicializace OpenGL asi moc vliv nemá. Prostě nemá nainstalovaný driver. _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
|
nou
Založen: 28. 07. 2007 Příspěvky: 1047
|
|
Návrat nahoru |
|
|
Buksy
Založen: 03. 01. 2009 Příspěvky: 19 Bydliště: KE
|
Zaslal: 5. leden 2009, 10:56:06 Předmět: |
|
|
nj,nemam nainstalovane ovladace,ten nehe kod mi nespusti lebo mu chyba nejaka kniznica,problem je ale v tom,ze samotna nvidia prestala podporovat tuto grafiku (co asi nikoho neprekvapi a bolo by to este ok, ale oni uz dokonca na svojej webovej stranke nedrzia ani len ovladace pre tu kartu ) ...
nou - ten balik ovldacaov som stiahol,zacal instalovat,ale vypisalo mi to ze v nich nie je ziadny vhodny pre moju kartu
tringi - doom3 som na nej neskusal,ale hl2 ide v pohode,trosku sekalo len pri scenach kde vybuchovalo 20+ sudov _________________ The Death is only beginning ! |
|
Návrat nahoru |
|
|
nou
Založen: 28. 07. 2007 Příspěvky: 1047
|
|
Návrat nahoru |
|
|
Ladis
Založen: 18. 09. 2007 Příspěvky: 1536 Bydliště: u Prahy
|
Zaslal: 5. leden 2009, 11:21:49 Předmět: |
|
|
Jj, staci na strance http://www.nvidia.com/Download/Find.aspx?lang=en-us vybart Legacy / GeForce 2 MX Series / GeForce2 MX/MX 400 a tvuj OS a po stisku Search ti najde spravne ovladace. _________________ Award-winning game developer |
|
Návrat nahoru |
|
|
Buksy
Založen: 03. 01. 2009 Příspěvky: 19 Bydliště: KE
|
Zaslal: 5. leden 2009, 12:01:24 Předmět: |
|
|
Dakujem (vsem)
takze teraz mam fps 80-90 pri 5% cpu _________________ The Death is only beginning ! |
|
Návrat nahoru |
|
|
wozembouch
Založen: 03. 09. 2007 Příspěvky: 31
|
Zaslal: 6. leden 2009, 08:20:36 Předmět: Drivers |
|
|
Predem se omlouvam za offtopic, ale kdyz se tady nakously ovladace ...
Studnice nv ovladacu snad od roku 2002 vcetne modifikovanych inf souboru a spousta dalsich uzitecnosti ...
http://www.laptopvideo2go.com/drivers |
|
Návrat nahoru |
|
|
|