60

Si, il semble qu'il le fait (mettre des 0x64.w à la place de 0x64 ne change rien).

As-tu vu l'edit ?
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

61

Quelqu'un a testé l'un ou l'autre ?
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

62

Au fait, en utilisant le compteur de frame sur grib, je me retrouve avec des scintillements sur HW2. J'ai dû me planter quelque part...
Sinon, je vais essayer de trouver un moyen de réduire le plus possible l'attente de la synchro : voici à quoi devra ressembler la boucle principale des programmes pour cela :
while(!quit)
{
  faireDesCalculs(objets);
  buffer_dessin = obtenirBufferDessin();
  dessinerLesObjets(objets,buffer_dessin);
  afficherBuffer(buffer_dessin);
}

Sauf que la fonction echangerBuffers ne prendra pas effet tout de suite, elle demandera simplement à la lib qu'au prochain cycle d'affichage il faudra échanger préalablement les buffers, cela fait qu'il n'y a aucune attente. Ensuite, le programme fait ses calculs (pendant ce temps la frame a le temps de finir d'être affichée, et le buffer affiché est remplacé par buffer_dessin), puis la fonction obtenirBufferDessin renvoie le nouveau buffer de dessin (qui est l'ancien buffer affiché) et on peut dessiner dessus immédiatement.
En fait la fonction obtenirBufferDessin pourrait bloquer, elle, tant que la frame n'a pas fini d'être affichée.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

63

Sasume :
En fait la fonction obtenirBufferDessin pourrait bloquer, elle, tant que la frame n'a pas fini d'être affichée.

Tu peut l'appeleer "WaitForVSync" ou plus simplement "vsync" alors ^^
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

64

Pourquoi V ?
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

65

Sur HW2, l'interruption est cadencée à 256 Hz et elle recopie 1/3 de plan à chaque fois. Un cycle complet doit afficher 2 dark_plane et 1 light_plane entiers, soit environ 9 fois l'interruption (3 planes à copier en 3 fois), donc le compteur de cycles complets d'affichage s'incrémente à une vitesse de 30 Hz environ, c'est une vitesse tout à fait suffisante pour les jeux smile
Sur HW1, l'interruption est cadencée à 350 Hz environ, mais n'est utilisée qu'une fois sur 4 ce qui fait qu'elle est utilisée à 90 Hz environ, le cycle d'affichage (2 light + 1 dark) est lui aussi cadencé à 30 Hz.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

66

V comme Vertical

vsync est souvent utilisé pour syncroniser avec la fin d'affichage d'une frame
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

67

Au fait, j'ai oublié de le préciser dans mon post 61 : je remercie Nu de m'avoir soumis cette idée.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

68

Marrant ce ./62 me rapppelle une autre lib cheeky

69

lol
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

70

Ah ? J'ai les sources en plus je pourrais repomper trivil
Cela dit, si tu parles bien de genlib, je ne me souviens pas que l'API permet de faire ça (enfin, j'avais aussi oublié le genlib::frame_timer...)
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

71

72

73

(oui bon c'est pas forcement le bon topic, mais c'est la faute a martial tongue) PpHd : Comment marchent Wait15 et Wait30 ?
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

74

./ 70 > OK smile
Bon, bah messieurs, je n'ai qu'une chose à dire : utilisez genlib grin
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

75


(oui bon c'est pas forcement le bon topic, mais c'est la faute a martial ) PpHd : Comment marchent Wait15 et Wait30 ?

Utilisation de genlib::timer et genlib::frame_timer, pourquoi ?

76

PpHd> Dans glaux_swap, tu ne te préoccupes pas de ne pas échanger les DSCREEN même si une frame est en cours d'affichage ?
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

77

En fait, après réflexion, on peut faire comme ça :
void gl_main()
{
  while(!quit)
  {
    // calculs
    glaux_ready();
    // affichage
    glaux_synchro();
    glaux_swap();
  }
}
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

78

Non ce n'est pas necessaire.

79

./77: tout a fait!

80

81

1. Exporter ta fonction FastCpyPlan like (comme le faisait Xv2).
2. Ajouter le TripleBuffering.

82

triple buffering ?
on peut le faire à partir du double non ?

83

84

pas forcement,

1 plan affiché
1 plan a afficher
1 plan sur lequel on ecrit

Ca peut permettre un poil plus de fluidité

Sinon ya d'autre systemes de triple buffering, mais celle que tu propose est plutot complexe :/
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

85

heu nan j'avoue j'aimerais bien savoir aussi à quoi ça correspond le "triple buffering", vu qu'en-dehors du petit monde de la Ti j'ai jamais vu, et que j'ai du mal à comprendre ce que ça peut apporter happy
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

86

Allegro (par ex) en propose du triple buffering
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

87

normalement, en double buffering, il faut que tu attendes la synchro des grays avant de swapper ton écran affiché et ton écran de dessin => tu perds du temps
en triple-buffering, tu dois pouvoir éviter ce temps d'attente, je suppose (vu que pendant le temps d'attente pour le swap écran affiché / écran à afficher, tu dessines déjà le troisième écran)
enfin, je pense que c'est en rapport avec ça

(sinon, je veux bien une explication aussi ^^ )
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

88

avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

89

bah c'est simple, si tu fais du double-buffering, tu dois attendre sans rien faire le prochain frame... c'est pas du tout gênant si ton jeu est conçu pour tourner à un frame rate constant connu que tu es sûr de pouvoir atteindre, mais si le frame rate est variable c'est très utile de pouvoir aller le plus vite possible sans perdre 1/90è de seconde (ou pire 1/30è de seconde) à chaque frame...

[méga-cross] et oui le fait qu'il y ait un article sur wikipedia tend à montrer que c'est loin d'être limité aux TI...

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

90

Bon le plus simple etant encore de faire du 42th buffering wink
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.