SDL- effet de dechirement - C++ - Programmation
Marsh Posté le 15-11-2002 à 23:22:37
Parce que ton programme n'attend pas que l'écran soit dessiné entierement pour afficher une nouvelle frame. Renseigne toi sur le vertical sync
Marsh Posté le 15-11-2002 à 23:28:16
j'ai précisé que j'utilisais SDL_flip car comme on peut le voir la :
http://sdldoc.csn.ul.ie/sdlflip.php
normalemenr SDL_flip attend le bon moment avant de swapper les buffer
mais là apparement il ne le fait pas
je precise que j'ouvre ma surface avec :
ScreenSurface=SDL_SetVideoMode(640,480,24,SDL_HWSURFACE|SDL_DOUBLEBUF|SDL_FULLSCREEN);
Marsh Posté le 15-11-2002 à 23:32:10
"On hardware that doesn't support double-buffering, this is equivalent to calling SDL_UpdateRect(screen, 0, 0, 0, 0)"
Ca vient peut etre de la?
Marsh Posté le 15-11-2002 à 23:48:49
ta carte nVidia elle accelere le mode 24 bits?
(pas de rapport, enfin pas direct)
LeGreg
Marsh Posté le 16-11-2002 à 00:14:47
je ne sais pas si j'ai l'acceleration materiel pour le 24bit mais ca me surprends quand meme : il me semble avoir lu dans la doc que toute les cartes un peu recentes permettes le double buffer
Ma carte est une geforce2
Marsh Posté le 16-11-2002 à 00:17:47
oui toutes les cartes accelerent le double buffer
sauf que sa rapidite depend de la methode utilise
pour le flipping:
ca peut etre une copie, une simple flip (immediat),
le tout synchronise ou non avec le rafraichissement d'ecran.
De plus dans les drivers nVidia on peut supprimer la synchronisation pour toutes les applications par defaut, verifie que ce n'est pas le cas.
LeGreg
Marsh Posté le 16-11-2002 à 00:38:15
dans le XF86Config-4, j'ai bien :
Section "Module"
Load "dbe" # Double-Buffering Extension
Load "v4l" # Video for Linux
Load "extmod"
Load "type1"
Load "freetype"
Load "glx" # 3D layer
EndSection
est ce possible que le flip soit si long que ca prenne plus longtemps qu'un balayage de l'ecran ?
Marsh Posté le 16-11-2002 à 09:23:49
T'as essayé avec une autre carte? j'ai jamais eu de truc pareil avec ma radeon
Marsh Posté le 16-11-2002 à 13:35:12
Je n'ai jamais eu ce genre de problème avec la libraire Allegro, (ma carte est une Gf2 MX), et ça marche parfaitement bien en mode page flipping.
Cela dit, le mode 24 bits est généralement plus lent que le 32 bits. Essaye de changer?
Marsh Posté le 16-11-2002 à 17:25:54
je n'ai malheureusement pas d'autre machine pour essayer.
j'ai mis les sources la, si qq'un veut bien essayer :
http://nico.is-a-geek.org/tank-framebuffer.tgz
cd tank
./configure
make
et pour le lancer :
./tank/tank
et me dire si en deplacant la souris, il voit aussi un dechirement du fond
merci
Marsh Posté le 16-11-2002 à 17:41:02
arf...j'ai aussi une gforce2 ti, je comprend pas, tu as les memes options que moi dans ton xf86config-4 ?
Marsh Posté le 16-11-2002 à 18:48:56
nico168 a écrit a écrit : arf...j'ai aussi une gforce2 ti, je comprend pas, tu as les memes options que moi dans ton xf86config-4 ? |
ouais
Marsh Posté le 16-11-2002 à 19:23:00
comprend pas, j'ai essayé avec les pilote nv et nvidia et j'ai le meme pb quelques soit la resolution et la profondeur
Marsh Posté le 16-11-2002 à 20:14:36
nico168 a écrit a écrit : comprend pas, j'ai essayé avec les pilote nv et nvidia et j'ai le meme pb quelques soit la resolution et la profondeur |
t'es sur de ton installe des drv nvidia ?
un ptit glxgears pour s'en assurer
>1000 ok
< 1000 pas ok
Marsh Posté le 16-11-2002 à 21:47:28
[nico@amd1800 nico]$ glxgears
4276 frames in 5.0 seconds = 855.200 FPS
4915 frames in 5.0 seconds = 983.000 FPS
4885 frames in 5.0 seconds = 977.000 FPS
4899 frames in 5.0 seconds = 979.800 FPS
4869 frames in 5.0 seconds = 973.800 FPS
4873 frames in 5.0 seconds = 974.600 FPS
je dois conclure quoi ?
Marsh Posté le 16-11-2002 à 21:52:04
nico168 a écrit a écrit : [nico@amd1800 nico]$ glxgears 4276 frames in 5.0 seconds = 855.200 FPS 4915 frames in 5.0 seconds = 983.000 FPS 4885 frames in 5.0 seconds = 977.000 FPS 4899 frames in 5.0 seconds = 979.800 FPS 4869 frames in 5.0 seconds = 973.800 FPS 4873 frames in 5.0 seconds = 974.600 FPS je dois conclure quoi ? |
ca a l'air bon ma foi...
Marsh Posté le 17-11-2002 à 17:51:05
Ace17 a écrit a écrit : Que vient faire allegro ici??? Le programme utilise SDL! |
Cté pour faire un peu de pub
Le truc du 32 bits est vrai pour toutes les librairies
Marsh Posté le 15-11-2002 à 23:15:14
salut,
lorsque j'affiche et deplace un bmp a l'ecran, je vois un effet de dechirement, pourtant j'utilise le double tampon avec SDL_flip()
j'utilise le pilote nvidia
qq'un vois pourquoi et comment le regler ?
merci