En voilà une belle optimisation pour les drivers 3dfx de Warp3D !
Quelques explications s'imposent : le vieux Gcc 2.90.27 utilisait une routine lente de 6 instructions pour arrondir certains chiffres FPU avant de les envoyer au GPU :
Cette routine est présente très souvent dans l'ensemble du driver, elle a l'avantage d'être 100% compatible avec le 68030/68882, le 68040 et le 68060.
Le soucis, c'est qu'elle est très lente... En fait, il est tout à fait possible de la remplacer par une seule instruction : fintrz.x !
Mais, il y a hélas un mais : fintrz n'est pas dans les transistors du 68040 ! Elle est donc émulée par la 68040.library.
Bien présente dans le 68882 du 68030, les ingénieurs de chez Motorola ont eu la brillante idée de la réintégrer dans le 68060 ! Et ouf pour notre cas ici, nous allons gagner de nombreux cycles !!
Alors, il y a fallut faire un choix avec cette routine fpCR :
- Soit la garder telle quelle pour ne pas ralentir un peu le 68040,
- Soit la remplacer par fintrz pour favoriser en vitesse le 68030 et le 68060.
C'est le deuxième choix que j'ai fait : désolé pour les utilisateurs de 68040... Il vaut mieux faire profiter le 68060. D'ailleurs la plupart des cartes accélératrices sur Amiga accepte l'upgrade en 68060, donc chacun a la possibilité d'utiliser un 060...
Après avoir remplacé toute cette routine par un fintrz, le driver 3dfx pèse maintenant 11,3 Ko de moins !
Ayant quelques soucis avec Ma Config 1, je suis en train de tout tester, et l'archive beta 5 sera bientôt disponible en Downloads...
Aucun commentaire:
Enregistrer un commentaire
Laissez vos commentaires ici :