vendredi 31 mai 2013

Introduction [fr]

Bienvenu sur mon nouveau Blog, à l'abordage de Warp3D moussaillon !!
  
Nous avons hélas sur Amiga Classics de la 3D lente malgré de puissants GPUs présents sur nos cartes graphiques RTG au format PCI.

Après désassemblage et examen du code des drivers Warp3D, il apparaît que ceux-ci sont dotés de routines lentes et donc peu optimisées : en effet, les compilateurs C/C++ sur nos Amiga produisent du code peu efficient, accentué encore avec l'architecture particulière des 68k qui nécessite une programmation "à la main" pour en obtenir sa quintessence.

La fonction principale des GPUs est de décharger nos CPUs 68040/68060 peu costauds de beaucoup de calculs : de cette manière, il est théoriquement tout à fait possible d'obtenir des jeux 3D rapides, même avec des CPUs à faible fréquence.

Il s'agit donc cette fois d'améliorer les drivers Amiga Classics Warp3D qui sont peu véloces. Le sujet est assez vaste, c'est pourquoi un Blog est une excellente idée afin de partager les questions, les informations et les avancées de ce nouveau chantier. De plus, avec la possibilité de laisser des commentaires, tout à chacun pourra apporter des idées, tester/contribuer à l'amélioration des librairies, et aussi apporter des informations dont je n'ai pas connaissance à l'heure actuelle.

Cette initiative est venue de ma propre personne, tout est ici non-officiel. De plus, les patchs proposés sont bien entendu gratuits pour tout à chacun.

Ces nouvelles versions sont donc construites et ensuite modifiées en utilisant le "reverse engineering", technique qui consiste en la recréation de sources à partir des programmes existants, qui est la seule et unique solution afin d'améliorer ces librairies et drivers 3D. Rappelons encore une fois que les GPUs des cartes 3dfx et des BlizzardPPC/CyberVisionPPC fonctionnent à des fréquences supérieure à nos CPUs 68040/68060, et sont dédiées spécifiquement aux calculs 3D en possédant même leur propre mémoire sur leurs cartes.

Les buts sont très simples : optimiser Warp3D de 20 à 30% (ce qui à la vue des sources est faisable), ainsi qu'ajouter la romabilité. Toutes les modifications seront pensées pour le 68060 en tenant compte de ses spécificités et avantages, tout en restant bien sûr 100% compatible avec le 68040 et le 68030. Au jour d'aujourd'hui, il n'y a plus aucun intérêt à optimiser pour un autre CPU que le 060. Pour les possesseurs de 68040, ces nouvelles versions seront tout de même plus rapides que les versions originales. Pour l'instant, seules les versions 68k sont retravaillées, les PPC viendront peut-être plus tard... Est-ce que le PPC est l'avenir de l'Amiga ? Bonne question, merci de me l'avoir posée !!

Un travail colossal a déjà été réalisé dans la recréation des sources, qui a nécessité un temps très important ces dernières semaines vu la taille conséquente des librairies. Celle du Permedia2 par exemple pèse environ 580 Ko, ce qui représente plus de 276 000 lignes de code assembleur ! Temps qui est de toute façon moins gigantesque que de reprogrammer de zéro un nouveau standard 3D pour nos ordinateurs chéris : l'optimisation de l'existant est donc la meilleure solution, puisqu'il existe de plus déjà des jeux utilisant Warp3D.

Bonne lecture !
    

5 commentaires:

  1. est-ce utile de nos jours de passer autant de temps sur ce type de projet ??? je me demande...

    RépondreSupprimer
  2. Ben oui, mais il faut faire quelque chose : le pire, c'est justement de ne rien faire...

    RépondreSupprimer
  3. oui cosmos, tout as fais d'accord, plus je fais de l'amigaNG et plus je me dis qu'il faut reprendre l'amiga depuis le début.

    RépondreSupprimer

Laissez vos commentaires ici :