Warp3D Radeon.
-
Nicholas : tu m’as fait peur )
Bon, c’est bien que Crisot se remette à coder, il était un peu en standby ces derniers temps
seg: les compilos C ne connaissent pas certaines particularités des instructions PowerPC qui font pourtant toute la puissance du CPU… Tant qu’on aura pas des compilos au niveau de ceux pour X86 on sera à la ramasse. Ceci dit les x86 ont pas beaucoup d’instructions/registres donc il n’y a rien en optimiser, en effet.
Salut mon chère Crisot:
Heureu de voir que tu reprends de l’activité en 3D.
Tu dis quelques postes plus haut que tu ne sais pas ce que tu pourais faire de ton moteur 3D.
Cela me rappelle une ébauche de jeux à la wipeout que tu nous avais fait voir à l’equinoxe sur ton A4000. Ca m’avait vachement impréssionné et je n’ai jamais compri pourquoi un projet aussi prométeur et aussi avancé n’a jamais vu le jour ne serait ce qu’en petite démo jouable pour tater le terrain et voir si un projet plus ambitieux pourait être réalisable.
Est ce que le moteur 3D était à toi?
Est ce que les autres membres de l’équipe t’autoriseraient a faire quelque chose là dessus?
Bref, dans ce projet non abouti, je voi beaucoup de gachi et je me dis que tes talents pouraient faire des miracles là dessus.
Je ne te cacherai pas que si tu faisais une version compatible Morphos je serai d’autant plus heureux puisque je n’ai pas d’Avoine. Pour le coté faisabilité technique je compte sur toi car je te sais assez talentueux et malin pour ne pas être arrété par ce genre de détails.
Bref, je te souhaite du courage et espère voir fleurir un petit CD jouable estampillé « Made in Crisot land ».
RyZen Rulez 😉
falcon1 a écrit :
et comme seuls les microAone sont fabriqués on les brenchera où les radeon 8xxx et 9xxx ???? sur le port PCI ….,?????
Les 7k soudé sur les MicroAOne sont ‘pas chere’. Les 8000 & 9000 sont vachement plus sympa. Et il y a même les pilotes (MorphOS, Linux….).
Par contre, je me demande si le bon vieux bus PCI va pas etre un peu saturé par tout ca.
De toute façon, les µAOne sont conçut pour etre des machines petites et ‘modeste’ a mon sens. donc, pas besoin de carte gfx de la mort qui tue .
Bye
Crisot : continue ton travail sur ce moteur, c’est très prometteur !
Logo : le support 3D pour Radeon a été montré plusieurs fois dans les shows et depuis au moins 18 mois.
C’est sûr qu’on verra ça arriver pour les simples utilisateurs, mais la grande question est toujours une question de temps.
A crisot: putain mec, ton teur-mo, il tue, ça déchire !!!
A propos de l’assembleur, du C et du PPC:
http://www.guru-meditation.net/main.php3?root=510
En gros: un coder C qui ne connait pas l’asm PPC codera un code C moins rapide
Krabob: Très interressant ton article mais il y a quelques oublie, voir des grosses boulettes
La grande majorité des instructions PowerPC prennent 1 cycle.
a *=256; // est aussi rapide que:
a <<=8;
Avec un temps d’execution allant de 3 à 5 cycles selon le cas, la multiplication échape à la règle, donc a *=256 est beaucoup plus long que le a <<= 8
De plus en préférant le * tu passes sur l’IU des complexe , qui est seul, ton opération ne peut donc plus etre parrallèlisée, alors que les instructions en 1 cycles sur l’IU des simples le peuvent, car 2 à 3 IU selon les PPC.
divw r13,r13,r14
fmadd f0,f1,f2,f3
add r5,r5,r6
add r7,r7,r8
add r9,r9,r10
add r11,r11,r12
…
Les 4 additions peuvent être réalisés dans 1 cycle
Effectivement, ce n’est pas faux en soit, dans un monde avec des fleur bleu sur le papier ce serait tout à fait possible. Sauf que le POwerPC n’est d’une part pas capable de dispatcher autant d’instruction, et d’autre par, il a 2 à 3 IU simples, donc 2 à 3 add en // au maximum A a condition en plus que tout soit aligné.
Enfin bref toutes ces choses là tu les sais, c’est juste de la distraction Car passer 4 additions en //, j’aimerais bien moi !!!
crisot a écrit :
Krabob: Très interressant ton article mais il y a quelques oublie, voir des grosses boulettes
La grande majorité des instructions PowerPC prennent 1 cycle.
a *=256; // est aussi rapide que:
a <<=8;
Avec un temps d’execution allant de 3 à 5 cycles selon le cas, la multiplication échape à la règle, donc a *=256 est beaucoup plus long que le a <<= 8
De plus en préférant le * tu passes sur l’IU des complexe , qui est seul, ton opération ne peut donc plus etre parrallèlisée, alors que les instructions en 1 cycles sur l’IU des simples le peuvent, car 2 à 3 IU selon les PPC.
humm,
Mes gcc génére le même code pour ‘truc *= 256;’ et ‘truc <<=8'. Une seul instruction de décalage. Bye
par crisot le 22/6/2005 0:32:58
Eddy: Warp3D ne fait que le rendu des polygons.
A optimiser il reste les matrices, leur applications, le backface culling, le frustum culling, le plane clipping, le radix, etc… Pour ne citer que les routines les plus bateau.
Ok, j’avais oublié que Warp 3D était à un si bas niveau, en faites il faut lui fournir la géométrie en calculant tout de A à Z, ce qui laisse bcp de places aux optimisations en effet…Au faites, pour aller un niveau au-dessus (au détriment de la vitesse malheureusement), est-ce que TinyGL ou un équivalent a été refait en natif pour OS4 ?
crisot a écrit :
Krabob: Très interressant ton article mais il y a quelques oublie, voir des grosses boulettes
La grande majorité des instructions PowerPC prennent 1 cycle.
a *=256; // est aussi rapide que:
a <<=8;
Avec un temps d’execution allant de 3 à 5 cycles selon le cas, la multiplication échape à la règle, donc a *=256 est beaucoup plus long que le a <<= 8
-snip-
Ca m’etonne que le cross compilo PPC de GCC n’optimise pas a*=256 en a<<=8 pour les manipulation d'entiers... SAS/C le fait pour nos 68k. Chui bien content d’utiliser SAS/C pour mon 68k.
a+
Seg.
Correction: oops, Nicholas a deja confirme mes doutes.
- Vous devez être connecté pour répondre à ce sujet.
› Forums › AmigaOS, MorphOS et AROS › Général › Warp3D Radeon.