vendredi 9 mai 2014

4589 nop [fr]

L'instruction nop des 68k signifie no operation : c'est à dire qu'elle ne fait aucun calcul...

Il y en avait en tout 4589 dans les W3D_AvengerLE.library et W3D_AvengerLEMU.library ! Oui, oui, vous avez bien lu : 4589 dans chacune d'entre elles !!

Elles étaient placées juste après chaque écriture dans un registre du GPU 3dfx :

Alors pourquoi avoir rajouté toutes ces nop ? Aucune idée, il faut déjà bien se rappeler que Warp3D 4.2 a été programmé en 2002 : peut-être qu'à l'époque la pci.library des Médiators l'exigeait...

Sur 060, nop flush aussi le write buffer... et coûte 9 cycles pour s'exécuter par le CPU !

La pci.library quant à elle a continué à évoluer depuis, et la dernière version disponible il y a peu est la v9.9 sur le site du constructeur.

Et bien, tous ces nop peuvent être purement et simplement ôtés maintenant ! Allez, bon débarras !!

Déjà, la librairie s'en trouve allégée d'un peu plus de 9 Ko, et je gagne environ 0.7 fps sous GLBlitzQuake...

Super !!
 

1 commentaire:

Laissez vos commentaires ici :