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 !