60

Ca ne te fera gagner aucun FPS à mon avis ! Bien, il va te falloir attendre le retour de Kevin, moi je ne sais pas comment "macroïser" du code ASM.
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

61

Voivi le gain en FPS que tu peux esperer en utilisant une macro : 0.01 /s.
Et ceci en ayant de la chance. Satisfait ?
ne gaspille pas ton temps a chercher des optimisations la ou il n'y en a pas.

62

ok, merci kan meme....

Donc KEVIN si tu passes dans le coin, pourrais tu adapter les 2 procedures (ou function pour faire plaisir a thibautgrin) du post 49 ? merci bcplove
Ancien pseudo : lolo

63

Merci PpHd smile J'espère qu'à deux on a enfin réussi à le convaincre roll
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

64

Mais je blague pas. Le taux de fps qu'il te faudrait atteindre pour avoir sensiblement une difference est de l'ordre de 60000 fps. Tu en es bien loin.
ton test est foireux car ta fonction est vide. Teste avec une fonction pleine et une macro pleine. La difference est bien plus faible. On utilise les macros pour leur capacite a se melanger au code source et donc a faire un code plus optimise, mais dans le cas de l'asm, surtout pour une routine qui ne fait que 800 fps, ca sera inutile.

65

Merde je vois qu'il n'est toujours pas convaincu sad

Il sait mieux que les pros comme PpHd dirait-on smile

.... madrage
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

66

Il est tetu. Afin, il verra en essayant.

67

j'ai essayé avec mon prgm ki tournai a 300FPS.
ben j'arrivais a gagné 10FPS en remplassant directement ma procedure d'affichage par son code.... coila pourquoi je m'entete....désolé....
Ancien pseudo : lolo

68

--> Le code

69

comment ca ?
Ancien pseudo : lolo

70

Montre-nous ton fameux code.
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

71

ce code, c mon prgm ANIM3D .

kan g calculer les nouvelles coorodonnées, j'avais (car maintenant c plus komme ca) uen boule FOR ki m'affichait toutes les faces une a une.

ben si je met cette boucle for directement, ou si je la met en fonction, ben ca acelere ds le premier cas, voila...

le code, jel'ai plus car c t a la version 6 smile

ca fait depuis cette version ke j'essaye de ne lpus utilser de proc......
Ancien pseudo : lolo

72

C'était une boucle appelée dans une autre boucle, donc. Mais cette boucle réalisait moins d'itérations que celle où elle était incluse, nan ?
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

73

/* The following 2 macros are converted from the Azur runtime by Thibaut Barthélémy (with his permission). */

#define GX_clrscr(Plane) asm("\
/* code optimized by Julien Monville (Pen^2) */\
 movem.l %%d0-%%d7/%%a0-%%a7,GXSvgReg;\
 lea     3840(%0),%%a7;\
 moveq   #0,%%d0;\
 moveq   #0,%%d1;\
 moveq   #0,%%d2;\
 moveq   #0,%%d3;\
 moveq   #0,%%d4;\
 moveq   #0,%%d5;\
 moveq   #0,%%d6;\
 move.w  %%d0,%%a0;\
 move.w  %%d0,%%a1;\
 move.w  %%d0,%%a2;\
 move.w  %%d0,%%a3;\
 move.w  %%d0,%%a4;\
 move.w  %%d0,%%a5;\
 move.w  %%d0,%%a6;\
 moveq   #10,%%d7;\
GXCS_loop:;\
 movem.l %%d0-%%d6/%%a0-%%a6,-(%%a7);\
 movem.l %%d0-%%d6/%%a0-%%a6,-(%%a7);\
 movem.l %%d0-%%d6/%%a0-%%a6,-(%%a7);\
 movem.l %%d0-%%d6/%%a0-%%a6,-(%%a7);\
 movem.l %%d0-%%d6/%%a0-%%a6,-(%%a7);\
 movem.l %%d0-%%d6/%%a0-%%a6,-(%%a7);\
 dbf     %%d7,GXCS_loop;\
 movem.l %%d0-%%d6/%%a0-%%a6,-(%%a7);\
 movem.l %%d0-%%d6/%%a0-%%a6,-(%%a7);\
 movem.l %%d0-%%d6/%%a0,-(%%a7);\
 movem.l GXSvgReg(%%pc),%%d0-%%d7/%%a0-%%a7"::"a"(Plane));

#define GX_CopyBuffer(Dest,Src): asm("\
 movem.l %%d0-%%d7/%%a0-%%a7,GXSvgReg;\
 move.l  %1,%%a7;\
 move.l  %0,%%a6;\ /* échange ces 2 lignes si tu utilises -fomit-frame-pointer !!! */
 moveq   #11,%%d7;\
CB_loop:;\
 movem.l (%%a7)+,%%d0-%%d6/%%a0-%%a5;\
 movem.l %%d0-%%d6/%%a0-%%a5,(%%a6);\
 movem.l (%%a7)+,%%d0-%%d6/%%a0-%%a5;\
 movem.l %%d0-%%d6/%%a0-%%a5,52(%%a6);\
 movem.l (%%a7)+,%%d0-%%d6/%%a0-%%a5;\
 movem.l %%d0-%%d6/%%a0-%%a5,104(%%a6);\
 movem.l (%%a7)+,%%d0-%%d6/%%a0-%%a5;\
 movem.l %%d0-%%d6/%%a0-%%a5,156(%%a6);\
 movem.l (%%a7)+,%%d0-%%d6/%%a0-%%a5;\
 movem.l %%d0-%%d6/%%a0-%%a5,208(%%a6);\
 movem.l (%%a7)+,%%d0-%%d6/%%a0-%%a5;\
 movem.l %%d0-%%d6/%%a0-%%a5,260(%%a6);\
 lea     312(%%a6),%%a6;\
 dbf     %%d7,CB_loop;\
 movem.l (%%a7)+,%%d0-%%d6/%%a0-%%a5;\
 movem.l %%d0-%%d6/%%a0-%%a5,(%%a6);\
 movem.l (%%a7),%%d0-%%d6/%%a0-%%a3;\
 movem.l %%d0-%%d6/%%a0-%%a3,52(%%a6);\
 movem.l GXSvgReg(%%pc),%%d0-%%d7/%%a0-%%a7"::"g"(Dest),"g"(Src));

asm("GXSvgReg: ds.l 16")
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

74

Merci Kevin smile

Quant à toi, lolo, si tu constates une différence, fais-nous signe...
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

75

c pour koi le asm("GXSvgReg: ds.l 16") ?
Ancien pseudo : lolo

76

Parceque je sauvegarde les registres dans un buffer. Tu dois l'inclure dans ta source. Une seule fois suffit attention
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

77

D'ailleurs, il devrait être possible de mettre:
void *(GXSvgReg[16])={};
(en variable globale) à la place. (Je mets le ={} parce que ça doit impérativement être dans .data. Si c'est dans .bss, l'adressage PC-relatif ne marche pas. En mode _nostub, il n'y a actuellement aucune différence, même si ça peut changer dans une version future, mais en mode kernel le ={} est obligatoire.)
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

78

Au fait, tu seras sympa de préciser dans ton LisezMoi qu'une petite partie de ton code provient de la bibliothèque Azur, merci.

Et si jamais tu distribuais les sources, tu remettras le "; Code optimise par Julien Monville" que Kevin a retiré au début de GX_clrscr attention
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

79

Mais tu mets un commentaire approprié (/* */). Les commentaires avec ; ne marchent pas avec l'assembleur GNU!
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

80

Kevin : le mieux c'est que tu édites ton post pour remettre la référence à Pen² wink
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

81

OK, c'est bon, j'ai mis:
- un commentaire disant que c'est ton code du projet Azur.
- un commentaire dans GX_clrscr qui dit que ça a été optimisé par Pen^2.

D'ailleurs, lolo, si tu ajoutes un commentaire me remerciant pour avoir converti ça en macros, ça sera également gentil. smile
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

82

Sympa Kevin smile
Voilà lolo tu n'as plus qu'à faire un copié-collé du post de Kevin top
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

83

pa de pb... d'alieurs, vous devez etre tous deja, pour la plus pard ds les remerciments de mon lisez_moi.txt.. allez voir dans mon zip si c bon...
http://lminguet.freesurf.fr/ti92/asm/
Ancien pseudo : lolo

84

bon alors, voila ce ke ca donne :
pour un cube, en calculant tout et en esactivant uniquement la procedure de lecture de l'abre BSP (on n'affiche donc pas l'objet), je c pas si vous voyez ce ke je veux dire...

ben les 2 nouvelles procedures me font passer de 184 Fps a 201 fps... elles me font donc gagner 17 fps...

par contre, il y a un gros incovenient, apres un lancement, si g le malheur de le relancer : "error 1111 emulator" en ligne noire en haut de l'ecran....

il y auras pas un free(GXSvgReg) a rajouter par hasard ?
Ancien pseudo : lolo

85

Non.
As-tu bien mis ds.l 16 et pas dc.l 16?
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

86

Et un autre conseil, ce n'est pas la peine de tester avec des fps si grand, Teste avec des fps realistes, sinon ton test possede un biais.

87

KEVIN > g fais un copier collé du code ci-dessus, donc c bien un ds.l 16 ke g mis...

par contre, toues les moveq, c pas des move.q k'il faut mettre (je precise ke je n'y connais presque rien en ASM sad )

PPHD > si je test a cette echelle, c justement pour agné ne serait-ce ke le moindre petit fps... car 1+1+.... ca peut faire bcp au final.... et si je ne testerait k'a des echelles classiques (50fps) ben je ne verais pas ces 1fps de gané, voila...
Ancien pseudo : lolo

88

Les FPS s'ajoutent pas du tout !!!!

89

oui, et non... ce ke je veux dire, c ke si sur une routine, j'arrive a gagné 2 fps et ke sur une sutre j'arruve a gagné 1 fps (separemment) ben si je combine ces 2 changement ds mon prgm, j'aurais gagné plus de 3 Fps... voila
Ancien pseudo : lolo

90

>lolo: par contre, toues les moveq, c pas des move.q k'il faut mettre

Non, c'est bien moveq. moveq.l pour être précis, mais il n'y a pas de moveq.w ni de moveq.b, donc c'est évident.

Peux-tu me faire parvenir la source entière pour que je puisse compiler et tester au débogueur de VTI?
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité