SDL- effet de dechirement

SDL- effet de dechirement - C++ - Programmation

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

Reply

Marsh Posté le 15-11-2002 à 23:15:14   

Reply

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

Reply

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  :cry:  
 
je precise que j'ouvre ma surface avec :
 
ScreenSurface=SDL_SetVideoMode(640,480,24,SDL_HWSURFACE|SDL_DOUBLEBUF|SDL_FULLSCREEN);


Message édité par nico168 le 15-11-2002 à 23:28:35
Reply

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?

Reply

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

Reply

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

Reply

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

Reply

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 ?
 

Reply

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


---------------
Boulay officiel : asphro
Reply

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?


Message édité par ITM le 16-11-2002 à 13:35:52

---------------
iteme.free.fr | Mon feedback
Reply

Marsh Posté le 16-11-2002 à 13:35:12   

Reply

Marsh Posté le 16-11-2002 à 14:29:32    

Que vient faire allegro ici??? Le programme utilise SDL!

Reply

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

Reply

Marsh Posté le 16-11-2002 à 17:38:31    

pas de pbs chez moi (gf2 ti)

Reply

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 ?

Reply

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

Reply

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

Reply

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

Reply

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 ?

Reply

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

Reply

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  :pt1cable:  
Le truc du 32 bits est vrai pour toutes les librairies  :sarcastic:


---------------
iteme.free.fr | Mon feedback
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed