DEATH 2021-05-10 at 09:38pm Pour l'optimisation j'ai étudié un peu la question et finalement... On ne gagne pas grand chose même en essayant d'entrelacer le code ou de faire super attention.
Le problème c'est que le nombre d'accès aux registres n'est pas correctement proportionné par rapport à la taille du pipeline.
Avec "seulement" un double port et 1 seule écriture, on arrive facilement à saturation avec un pipeilne à 3 stages
à priori la bonne valeur ça serait un triple port avec double écriture aux registres
On peut optimiser un peu en entrelaçant le code mais c'est vrai que de tous façon les proc de la Jaguar ont leurs limites.
Bon j'ai pas vraiment optimisé, au contraire j'ai éliminé la parallélisation GPU/DSP mais c"est le seul moyen que j'ai trouvé pour éviter le bug de corruption.
Merci d'avoir jeté un oeil sur le code généré.
Effectivement j'ai fait pas mal de clr.l en RAM dans le code de ma lib, fou que je suis. Bon je les ai remplacés par des move.l #0. Cependant c'était en RAM, je n'en ai pas vu vers la zone $Fxxxxx.
J'ai aussi vérifié le code généré à partir du C: pas de clr.l en RAM, ni vers le hard de la Jag.
Bizarre...
Je suis curieux à propos de ton analyseur logique. Qu'est-ce que tu peux faire avec? Je m'y connais pas trop en électronique.
@RadiATIonDDR: ok j'ai vu. Donc sur une de tes jag c'est OK et sur l'autre y'a des problèmes: y'a de la détérioration sur les sons des tirs et un bruit à l'interruption d'une mission, mais la musique est normale.
Là je suis perplexe. Si c'est le bug de corruption mémoire, ce serait bizarre que ça impacte un petit sample comme le tir mais pas un gros sample comme la musique. Serait-ce un AUTRE bug???
Tu veux vérifier si ta Jaguar est en 60Hz? Je peux modifier mon programme pour qu'il affiche l'intervalle de temps entre 2 VBL en se basant sur le timer 16,6KHz.
Tu as été rapide. Entre temps j'ai trouvé un autre moyen. En utilisant Pitfall... Si le jeu présente 2 barres horizontales (une en haut, une en bas) on est en 50hz et si ces 2 barres ne sont pas présentes donc le jeu prend tout l'écran on est en 60hz. Mes 2 consoles sont bien en 50hz...
6 fauves à la maison : 2 Jaguars, 2 Lynx2 et 2 enfants 😅 + 2 new Atari VCS mais est-ce des fauves ?
Merci pour ce test!
Attention, la version que je t'ai filé qui mesure le temps entre 2 VBL n'affiche pas de 3D dans l'écran de titre, pas d'appel au DSP et au GPU pour la 3D. Donc ça tient!
Cependant elle a quand même l'air généralement plus stable. Dans cette version les mémoires du GPU et DSP sont mise à zéro à l'init, ainsi que les buffers écrans et ceux utilisés pour la 3D.
J'ai eu quand même des corruptions de musique pendant des tests mais ça a l'air moins fréquent.
J'ai ensuite mis les flags DSP et GPU à zéro à l'init. Ca a l'air encore plus stable, pas de corruption remarqué.
Je prépare une version 074 pour test.