hello les gens,
J'aimerais savoir si certains ce sont penché sur le pb dy vscync en arriere plan, si une interruption existe sur le vblank le changement de pointeur pourrait se faire a ce moment la, et eviter au prog de perdre du temps betement a faire du polling au lieu de bosser...
Pas d'interruption VBLANK on dirait... dommage.. yavait une interruption vblank meme sur ma vieille HP48..
Le gain d'une telle technique serait si grand que ca ?
J'ai cru lire que l'ecran tourne autour de 60Hz.
- Si la boucle generale du programme va plus vite qu'un cycle de l'ecran, on est bloque a 60Hz par l'affichage
- Si la boucle generale du programme met une fois et demi le temps d'un cycle d'ecran, ce que fait tout le monde, force un affichage a 30Hz. En moyenne avec un vblank, on pourrait tenter le 45 Hz (ok, pour ce cas, ca peut valoir le coup. Mais bon 30Hz ou 45Hz, les deux sont pas mal)
- Si la boucle generale du programme met deux cycle et demi d'ecran, le vblank permettrait d'atteindre 60/2.5 = 24Hz et l'utilisation normale limite a 60/3 = 20Hz.
Et plus la boucle est longue, plus la difference est minime entre le refresh avec polling et celui utilisant un vblank.
En gros ca sert juste a approcher les 30Hz quand l'affichage standard est limite a 20Hz ? (cas d'une boucle generale qui durerait 2.1 fois un cycle d'ecran)
J'ai pas ete trop brouillon j'espere...
Etre bloqué a 60Hz c'est tres bien, c'est vraiment pas la peine d'aller plus vite que ça.
Faire tourner les jeux a 60FPS stable et synchro Vsync c'est l'objectif.
Le probleme est le suivant :
La boucle de jeu n'est pas parfaitement stable, une explosion, un effet temporaire, et paf je perds de precieuses ms et loupe la synchro, disons d'une ms, est-ce bien raisonable de passer des 14 ou 15 ms suivantes a attendre le vblank plutot que de commencer a generer la frame suivante ?
Avoir un vsync en arriere plan permet d'avoir un jeu bcp plus tolerant aux depassements de synchro.
Sinon on est obligé d'etre sur que dans tous les cas le calcul + affichage d'une frame ne depasse jamais 16.66 ms.
En me baladant un peu j'ai vu que plusieurs fréquences de rafraichissement etaient dispo, et j'ai vu aussi que la fréquence 53Hz semblait etre une sorte de std.
Pkoi pas 60 ?
ok. j'avais oublie que des fois c'etait plus lent que d'autres. Que le temps de la boucle pouvait bien changer au cours du jeu.
solution pourrie: passer en 120Hz (mrmirko semble le proposer dans son sdk, je sais pas trop comment reagit la console a ca. surement pas trop mal), tu perds un peu moins de temps.
JyCet Le 13/08/2004 à 19:17 Il me semble que Mr Spiv m'avait dit que le LCD tournait par defaut à 50Hz et qu'on avait pas le choix
Maintenant si on peut le faire tourner a 30Hz ça m'interesse grandement !
Oui, j'ai lu ça.
Dommage qu'il ne finisse pas son explication.
Il faudra que je regarde d'un peu plus pres les timers.... Dommage aussi que la GP32 ne soit pas notre plateforme prioritaire, je n'ai pas bcp de temps a lui consacrer.