.[ ČeskéHry.cz ].
pomale sdl_gl_swapBuffers

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Obecné
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

PříspěvekZaslal: 4. leden 2009, 19:48:43    Předmět: pomale sdl_gl_swapBuffers Odpovědět s citátem

Smile 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
Zobrazit informace o autorovi Odeslat soukromou zprávu
nou



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

PříspěvekZaslal: 4. leden 2009, 21:08:00    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
Buksy



Založen: 03. 01. 2009
Příspěvky: 19
Bydliště: KE

PříspěvekZaslal: 4. leden 2009, 22:05:33    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
nou



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

PříspěvekZaslal: 5. leden 2009, 00:33:00    Předmět: Odpovědět s citátem

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
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: 5. leden 2009, 01:07:50    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
Buksy



Založen: 03. 01. 2009
Příspěvky: 19
Bydliště: KE

PříspěvekZaslal: 5. leden 2009, 02:10:45    Předmět: Odpovědět s citátem

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 ? Sad

nou - tie printfi mi vyhodili toto:
Vendor: Microsoft Corporation
Renderer: GDI Generic
Version: 1.1.0
_________________
The Death is only beginning !
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Tringi



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

PříspěvekZaslal: 5. leden 2009, 02:45:10    Předmět: Odpovědět s citátem

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
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: 5. leden 2009, 05:14:03    Předmět: Odpovědět s citátem

Na to inicializace OpenGL asi moc vliv nemá. Prostě nemá nainstalovaný driver.
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
nou



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

PříspěvekZaslal: 5. leden 2009, 09:08:50    Předmět: Odpovědět s citátem

bud nenaistalovany driver. http://www.nvidia.com/object/winxp_180.48_whql.html lebo tie defauultne ovladace od microsoftu dokonca sprovoznia aj DX ale OGL nie. stiahni si http://nehe.gamedev.net/data/lessons/vc/lesson24.zip a vyskusaj. ak to bude tak isto GDI render tak naistaluj ovladace.
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Buksy



Založen: 03. 01. 2009
Příspěvky: 19
Bydliště: KE

PříspěvekZaslal: 5. leden 2009, 10:56:06    Předmět: Odpovědět s citátem

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 Confused ) ...

nou - ten balik ovldacaov som stiahol,zacal instalovat,ale vypisalo mi to ze v nich nie je ziadny vhodny pre moju kartu Sad

tringi - Smile doom3 som na nej neskusal,ale hl2 ide v pohode,trosku sekalo len pri scenach kde vybuchovalo 20+ sudov Smile
_________________
The Death is only beginning !
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
nou



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

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

ale maju len je to schovane pod polozkou Legacy http://www.nvidia.com/object/winxp_2k_93.71_2.html
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Ladis



Založen: 18. 09. 2007
Příspěvky: 1533
Bydliště: u Prahy

PříspěvekZaslal: 5. leden 2009, 11:21:49    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
Buksy



Založen: 03. 01. 2009
Příspěvky: 19
Bydliště: KE

PříspěvekZaslal: 5. leden 2009, 12:01:24    Předmět: Odpovědět s citátem

Dakujem Smile (vsem)

takze teraz mam fps 80-90 pri 5% cpu
_________________
The Death is only beginning !
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
wozembouch



Založen: 03. 09. 2007
Příspěvky: 31

PříspěvekZaslal: 6. leden 2009, 08:20:36    Předmět: Drivers Odpovědět s citátem

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
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 -> Obecné Č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