mardi 29 septembre 2020

miniGL 1.25

 Nouvelle avancée avec 5 routines retravaillées :
  • _GLRotatef (de 3208 à 612 octets)
  • _GLLoadMatrixd et _GLLoadMatrixf (de 528 à 92 octets)
  • _GLTranslated (de 900 à 170 octets)
  • _GLScalef (de 782 à 150 octets)
 
Etant moi même un cas spécial, je n'ai rien contre les cas spéciaux : MGLMAT_0001 a été supprimé de _GLLoadMatrixd et _GLLoadMatrixf car n'apporte que trop peu tout en compliquant beaucoup. Les cas spéciaux ne doivent être utilisés qu'avec des gains réels. Rassurez-vous, toutes ces petites modifications restent 100% compatibles avec tout le software utilisant cette librairie miniGL.

Sinon, j'ai encore réussi à optimiser les deux _GLPopMatrix et _GLPushMatrix, passant alors de 332 octets à maintenant seulement 80 octets, comme quoi en cherchant un peu...
  
Sources et librairies compilées disponibles ici !  
    

vendredi 18 septembre 2020

miniGL 1.24

Trois nouvelles routines de faites, ça avance :
  1. _GLFrustum (de 1440 octets à 364 bytes)
  2. _GLScaled (de 806 octets à 142 octets)
  3. _GLInitMatrix (de 218 octets à 86 octets)
 
Je vous avais bien dit à plusieurs reprises que nos compilateurs C Amiga 68k ne produisaient que du code de moyenne qualité, et personne ne voulait me croire...
 
Comme dans tous projets complexes, des décisions importantes sont à prendre et les bonnes de préférence : neuf cas spéciaux (les _m_MatMultA0001_xxx avec MGLMAT_0001) d'autres cas spéciaux compliquent beaucoup, et déjà le dispatcher _m_Mult, je vais les supprimer aussi des sources originaux, car n'apportent que trop peu selon moi, voire même ralentissent dans certains cas...

J'y pensais déjà depuis un moment et puis la _GLFrustum m'a finalement convaincu...

Pour donner une idée, voici plus de précisions sur l'utilisation des routines minigl dans GLBlitzQuake :
 
Là encore, si vous voyez à optimiser davantage, contactez-moi de toute urgence. Chaque cycle est important et compte. Par exemple, la _GLColor4fv peut-elle être convertie toute en integer ?
    
Sources et librairies compilées disponibles ici !
   

samedi 12 septembre 2020

miniGL 1.23

Une nouvelle version de miniGL avec deux routines optimisées (_GLRotatefEXT et _GLRotatefEXTs) qui passent toutes deux de 21 076 octets à seulement 436 octets... Arf, j'ai bien bossé ! gcc avait produit tout un pataquès incroyable, avec de nombreuses sous-routines inutiles... Bref, un beau méli-mélo qui a été très bien simplifié pour ne garder que le strict minimum nécessaire.
 
La routine _GLTranslatef passe également au régime minceur de 876 octets à 156 octets...
 
miniGL 1.2 contient 289 routines, déjà 18 de retravaillées tout de même !
  
Y'a encore du boulot !
   
Sources et librairies compilées disponibles ici !
   

samedi 5 septembre 2020

WinUAE 4.4.0 bug fix

J'ai trouvé un bug assez sérieux entrainant un reset et ensuite un guru dans certaines circonstances avec l'émulation FPU JIT de WinUAE 4.4.0 que j'utilise quotidiennement sur mon PC.

Alors, deux solutions pour y remédier :

  • le bug n'apparait que lorsque "More compatible" est sélectionné. Donc à décocher :

 

  •  ou utiliser la nouvelle version 4.5.0 qui le corrige dans tous les cas, l'auteur contacté l'ayant fixé.
 
Ah les bugs sur Amiga 68k, une sacrée épine dans le pied...