Warp3D Radeon.
-
crisot a écrit :
Si. Le C est un language asmatique, pourri, lent, dont un simple X++ compilé en -O3 est entre 2 et 3 fois plus lent que son équivalent assembleur.
Ca vas juste vite pour développer, mais niveau rapidité, c’est de la merde.
Je ne peux pas laisser dire ca! Je rejoins un peu la premiere reponse de Fab1.
Le C est un bon langage. A mon sens, il est le meilleur compromis entre langage evolue et assembleur.
Tout est question d’algorithme et d’optimisation d’algorithme. Un programme mal code en C va s’eloigner de son equivalent assembleur en terme de vitesse. Par contre, si tu le codes bien en C, tu vas te rapprocher de son equivalent assembleur.
En assembleur, on peut maitriser les registres que l’on va utiliser et limiter les acces memoire. On peut pratiquement faire ca en C mais y a des limites quand meme.
Sur les petits algorithmes, le C peut nous donner quasiment le meme resultat qu’en assembleur, voire carrement le meme!
Je prends un exemple:
Sur tes calculs geometriques (rotation, transformation, backface culling, clipping, etc): t’as X facons de mettre en place ton pipeline, et t’as encore X facons d’optimiser chaque etape de ton pipeline. Si tu optimises au mieux les algorithmes de chaque etape, et si tu programmes au mieux ton truc en C, tu auras un code quasiment aussi bon que ton equivalent assembleur.
A titre de comparaison, et je pense que tout le monde l’aura compris, si tu optimises les algos et le code du source en C, sans optimiser les algos (sauf le code) du source en ASM, il est evident que ton code C sera plus rapide que ton code ASM.
D’une maniere generale, je ne dis pas que ton compilo pondra du code plus nickel que toi, mais tu pourras presque negliger la perte de vitesse tellement elle sera imperceptible. De plus, en programmant en C, et a condition d’etre conforme a certaines regles de programmation, ton code aura l’avantage d’etre portable (c’est un aspect important pour moi en fait).
Maintenant, un petit peu de relativite: quand je vois les applications faites en Java qui sont, allez… 100 fois plus lentes que des applications faites en C et que y en a qui osent dire qu’on a maintenant un rapport 1 entre un code produit en C et l’equivalent produit en Java (alors que pour avoir un rapport 1, il faut des classes Natives, soit des classes ecrites en C et interfacees via JNI par exemple)… bref, vu comme ca, on pourrait dire que y a aucune difference entre le C et l’assembleur quand on voit la merde qu’a une categorie importante de population dans leurs yeux.
Tout ca pour dire qu’on peut se rejouir d’avoir le C qui est un langage rapide (a condition que le programmeur soit aussi competent) et surtout portable en suivant des regles rigoureuses de programmation qui ne sont pas contraignantes… croyez en mes annees d’experiences en C et ASM. C’est une question de metodologie de programmation, pas une question de langage C!
Je te ferai bien tester mon petit moteur 3D pondu en C, avec rendu soft. Les calculs geometriques sont ptete pas top optimises car le code date un peu et j’en connaissais moins en 3D a cette epoque, mais ca doit blaster pas mal sur ton AOne.
a+
Seg.
Yomgui: Ce sont les pilotes Radeon PUBLIQUE d’Os 4, donc ça marche chez absolument n’importe qui.
Mahen: J’aurais pu le faire sur mon 4000T aussi, mais ni la Permedia du 4000T ni la Voodoo du Peg ne tournent asser pour vite pour afficher ça correctement.
MOS 1.5 et existent
C’est sans doute pour ça qu’ils font des MAJ en +0.0.x au jour le jour.
Seg: Je suis désolé je comprend ce que tu dis mais crois moi la différence serait LOIN d’etre imperceptible. Zero affiche la première scene en 640x480x16 avec 3500 polygons à 60 fps sur un G4, en C je table pas plus de 25. Si quelqu’un veux tenter l’expèrience…
Sinon merci 1000 fois à ceux qui me donnent vraiment plaisir à lire ce thread
Mahen: J’aurais pu le faire sur mon 4000T aussi, mais ni la Permedia du 4000T ni la Voodoo du Peg ne tournent asser pour vite pour afficher ça correctement.
Les Voodoo 4 doivent facilement approcher voir, dépasser les Radeon 7xxx.
Sinon, Warp3D convertis les textures 32bits en 16bits si necessaire, non ?
Au faites, c’est vilain d’exclure les possesseurs de Voodoo ;-P.
Bye
Le support 3D sous radeon c bien beau mais je vois pas a quoi ca sert (a part avoir un support 3d sur le micro a1).
Il y a 2 ans je faisais tourner les drivers 3D (beta) sur mon peg1 + voodoo.
Tous les jeux 3D Amiga tournaient a grande vitesse (quake 2 a 30 fps en 1280*1024).
Le probleme c’est qu’il n’y a pas de logiciels qui exploitent pleinement tout ce que peu apporter un driver 3d d’une carte recente.
Ca serait interessant si on avait des soft de 3d qui en profitaient ou des BONS jeux (les meilleurs ports du monde PC ou encore mieux de jeux unique develope pour l’Amiga mais il faut pas rever, a part peut etre virtual GP machin).
Bref pour la 3D je prefere ma PS2 car meme si le HW est bien plus vieux il me permet de jouer a Grand tourismo4 en HDTV.
Au faites, c’est vilain d’exclure les possesseurs de Voodoo ;-P.
http://www.monsieurprix.com/listing/gen/J000084043.html
Pour la voodoo 4 effectivement elle est coriace niveau performances elle balade la 7000, mais contre une 7200 DDR ou une 7500 DDR… C’est une autre paire de manches.
CDFR: Le support des Radeon 8×00 et 9×00 est d’actualité, en tout cas son développement. Une fois ces cartes supportée cela voudra dire avoir du T&L hardware et des shaders, pour ne parler que de ça.
Et ça, ça veux dire porter des jeux récents sur AOne, et le port de jeux, Hyperion à l’habitude (une fois Os4 fini, tout est question de priorités).
Lion: MPlayer à toujours planté comme une drouille chez moi je n’ai jamais réussis à lire une vidéo avec la dirty 3 comme 4 cependant tous les gens ont l’air d’en etre très satisfait. Moi je ne peux pas piffrer mplayer et comme je lis pas de vidéos sur l’Aone en fait j’ai pas cherché D’autres personnes te répondrons mieu.
Pour ce qui est du moteur à la base je suis demo maker mais il est vrai que j’envisage de faire un petit jeu: Quoi je ne sais pas, mais un jeu tout con, qui se code vite fait, Freeware, sur lequel on joue 5 minutes de temps en temps pour se détendre: J’aimerais bien !!!! Si vous avez des idées faites m’en part.
Murakami: Ben ce qui est sur maintenant c’est que dans le meilleur des cas ce sera pour Os4 final. Pas avant, vu qu’il n’y aura plus de mises à jour. Au fait sinon elles marchent bien 2D la 9200? (je demande pour mon info) Enfin y’a pas de raisons certains tournent en 9800…
Pour ce qui est du moteur à la base je suis demo maker mais il est vrai que j’envisage de faire un petit jeu: Quoi je ne sais pas, mais un jeu tout con, qui se code vite fait, Freeware, sur lequel on joue 5 minutes de temps en temps pour se détendre: J’aimerais bien !!!! Si vous avez des idées faites m’en part.
des boing balls et des papillons bleus en 3D, des fléchettes, et beaucoup de sang.
crisot a écrit :
CDFR: Le support des Radeon 8×00 et 9×00 est d’actualité, en tout cas son développement. Une fois ces cartes supportée cela voudra dire avoir du T&L hardware et des shaders, pour ne parler que de ça.
Ca rejoint ce que je dis. C’est bien beau mais faudra des soft pour utiliser tout ca. Si c’est pour faire tourner Quake2 a 50 fps de plus ca a pas tellement d’interet.
Et ça, ça veux dire porter des jeux récents sur AOne, et le port de jeux, Hyperion à l’habitude (une fois Os4 fini, tout est question de priorités).
Reste a savoir si Hyperion pourra payer les licenses des jeux les plus interessant et faire les ports pour au plus quelques centaines de ventes.
J’avais fait à l’époque un petit moteur 3d en C sous SAS-C.
Puis j’ai refait quelques routines en asm, l’essentiel restant en C.
Du ligne par ligne, sans optimisation comme nous l’enseigne Rafo et compagnie. Rien a battre de l’alignement, du cache…
Résultat 40% plus rapide.
@Lio
Oui, la vidéo de Crisot fonctionne bien avec MPLayer. C’est le lecteur que j’ai utilisé pour la visionner.
Oui, ma Radeon 9200 ne me pose pas de problème en 2D. Elle m’affiche le Workbench, c’est le principal, non ?
… Mais je n’ai toujours pas réussi à imprimer en parallèle depuis l’update 3 et, ça, ça m’énerve franchement.
gindrou a écrit :
J’avais fait à l’époque un petit moteur 3d en C sous SAS-C.
Puis j’ai refait quelques routines en asm, l’essentiel restant en C.
Du ligne par ligne, sans optimisation comme nous l’enseigne Rafo et compagnie. Rien a battre de l’alignement, du cache…
Résultat 40% plus rapide.
J’ai omis de preciser sur mon post precedent que les differences sont moindres sur les cpu plus recents.
En dessous des 060, c’est clair que les compilos ne compilent pas assez bien pour reduire les differences C/ASM. Maintenant, c’est aussi une question de metodologie.
On peut pondre un algorithme en ASM et etre 2 fois moins rapide qu’un autre code ASM pour le meme algorithme.
C’est Idem en C. Tout depend de ce qu’on utilise: long/int, preincrementation/postdecrementaion, declaration locale des variables/ou globales au bloc, etc… Tout ca donne des resultats bien differents a la compilation.
Bref, deja, sur les 060, ca “arrache” relativement en C, alors sur un 603, un 604, ou un G3 ou un G4… Ces processeurs ont encore plus de registres, ce qui facilite le travail du compilo C.
Donc, comme je l’ai dis, pour moi, le C est le meilleur compromis car il est rapide (en suivant quelques metodologies) et portable (en suivant quelques metodologies aussi).
Mise a part le fun (je sais ce que c’est sinon je bosserai pas sur mon ptit mildeu) ou la programmation de code critique (plus specifique et de toute facon “mergeable” a un projet C), il faut se poser la question de l’interet de programmer en asm par rapport au C, au regard des performances que l’on a en C (rappel: en suivant les bonnes metodologies).
[Ohhh la belle digression, je m’etends sur un autre sujet la ]
Je soutiens donc clairement, comme d’autres, que le langage C n’est pas un langage lent. Mais cette opinion est relative au cpu utilise…
a+
Seg.
@all:
Humm, je viens de me rendre compte du faute de frappe:
Ce n’etais pas pas ‘put’ mais ‘pub’ que je voulais écrire dans mon
1er post.
Je comprend mieux les reactions sur ce thread.
Donc, je suis désolé!
Et je présente mes excuses à Crisot. En effet, ce typo, même involontaire,
était insultant.
Bye
- Vous devez être connecté pour répondre à ce sujet.
› Forums › AmigaOS, MorphOS et AROS › Général › Warp3D Radeon.