null Le 13/02/2003 à 19:00 Les résultats de ce bench montre très bien ce que j'ai pû voir avec mon moteur :
Extgraph (C) FastDrawHLine(*DScr[ts],0,160,i,A_NORMAL); : 6150
Genlib : gl_draw_hline_dg(0,160,i); : 8470
Extgraph (asm) : HLine_OR(0,160,i,DScr[ts]); : 9915
www.wikio.fr/user1921&info=comments
Oui, mais mon HLine_OR n'est pas clippé, contrairement à celui de PpHd...
null Le 13/02/2003 à 19:22 Avec mon moteur, j'ai bien vu que le clipping marchait mal (ou pas).
Et puis mnt avec les lignes quelconques :
Genlib : 988
Extgraph (asm) 1330
Extgraph (C) 713
D'après la doc, la routine de Genlib n'est pas clippée.
www.wikio.fr/user1921&info=comments
null Le 13/02/2003 à 19:33 Oui, c'est bien la sienne.
Mais mon bench ce sert du double buffering de Genlib : il est affiché après 10 lignes tracé et par conséquent ça occupe pas mal de ressources.
Je viens d'essayer sur ma Hw2 et les résultats se confirme.
www.wikio.fr/user1921&info=comments
Moi aussi, c'est ce que je pensais.
Mais XDanger m'a dit que dans certains cas, la fonction d'ExtendeD n'était pas capable de tracer la ligne.
Et puis il faut voir la différence de taille aussi...
Solid (liquid) et Vark, ne riez pas! Regardez un peu les benchs de la prochaîne version de ExtGraph. Certaines de ses routines sont même plus rapides que celles de genlib!
Vark Le 13/02/2003 à 19:59 même pour les sprites ? si c juste les tracé de lignes c pas ce qu'on utilise pour des jeux ......
et sortez-la votre putain de nouvelle version au lieu de nous balancer des benchs !
*** Ne sous-estimez pas la puissance de la Marmotte ***
©
Marmotte Team : LaMarmotte, sBibi, Vark & sabrina
Non, pour les sprites, ExtGraph est encore derrière à mon avis. Même si elle n'est plus très loin derrière.
Et il reste encore pas mal de trucs à finir pour sortir la prochaine version.
je ne serai pas aussi violent, extgraph sortira, soit, mais les routines de sprites ne seront jamais aussi rapides que celles de genlib
warau kado niha fuku kitaru.
#trifouet#!!!
et de toutes facons genlib possede un environnement de programmation qui m'est tres utile et que extgraph n'a pas
warau kado niha fuku kitaru.
#trifouet#!!!
Raph: 988 pour le bench de genlib, il mpe semble pourtant que pphd avait benché a une moyenne de 1400 lignes/s ...
null Le 14/02/2003 à 17:24Edité par Raphael le 14/02/2003 à 17:30 faut se mefier des bench sans sources..
Tu as raison, d'ailleurs je voulais les mettre avant.
Si tu veux j'ai l'exécutable mais avec Genlib ça plante 1 fois sur 5.
// C Source File
// Created 12/02/2003; 20:28:23
#define NO_EXIT_SUPPORT
#define NO_CALC_DETECT
#define USE_KERNEL
#define USE_TI89 // Compile for TI-89
#define MIN_AMS 100 // Compile for AMS 1.00 or higher
#define SAVE_SCREEN // Save/Restore LCD Contents
#include <tigcclib.h> // Include All Header Files
#include "genlib.h"
#include "graph.h"
#include "extgraph.h"
DSCREEN *DScr[2] = {NULL, NULL };
int ts = 0;
void SwapBuffer()
{
gl_set_dscreen_int(DScr[ts]);
ts ^= 1;
gl_set_dscreen_function(DScr[ts]);
}
// Main Function
void _main(void)
{
HANDLE hd;
gl_init(); // Init genlib
gl_init_dscreen(&DScr[0], &hd); // Alloc 1 DScreen
if (hd == H_NULL) goto exit; // Quit if error
gl_push_hd(hd); // Save the handle
gl_init_dscreen(&DScr[1], &hd); // Alloc the 2nd DScreen
if (hd == 0) goto exit; // Quit if error
gl_push_hd(hd); // Save the handle
gl_set_dscreen_int(DScr[0]); // Define the printed DScreen
gl_set_dscreen_function(DScr[0]); // Define the working DScreen
gl_cls(); // Clear the working DScreen
unsigned long extasm=0;
unsigned long Genlib=0;
unsigned long extgraphc=0;
int i;
gl_frame_timer=0;
do
{
SwapBuffer();
gl_cls();
for(i=0;i<10;i++)
{
//HLine_OR(0,160,i,DScr[ts]);
FastDrawline(*DScr[ts],0,i,160,i+3,1);
}
extasm=extasm+10;
}while(gl_frame_timer!=300);
extasm=extasm/10;
gl_frame_timer=0;
do
{
SwapBuffer();
gl_cls();
for(i=0;i<10;i++)
{
//gl_draw_hline_dg(0,160,i);
gl_draw_line(0,i,160,i+3,1);
}
Genlib=Genlib+10;
}while(gl_frame_timer!=300);
Genlib=Genlib/10;
gl_frame_timer=0;
do
{
SwapBuffer();
gl_cls();
for(i=0;i<10;i++)
{
//FastDrawHLine(*DScr[ts],0,160,i,A_NORMAL);
FastDrawLine(*DScr[ts],0,i,160,i+3,1);
}
extgraphc=extgraphc+10;
}while(gl_frame_timer!=300);
extgraphc=extgraphc/10;
gl_free_hd(); // Free all the allocated handles
gl_quit(); // Quit Genlib
clrscr();
printf_xy(1,1, "Genlib = %d", (int)Genlib);
printf_xy(1,10, "Extgraph (asm) = %d",(int)extasm );
printf_xy(1,20, "Extgraph (C) = %d",(int)extgraphc);
ngetchx();
exit:
}
www.wikio.fr/user1921&info=comments
PpHd Le 14/02/2003 à 17:28 >Extgraph (C) FastDrawHLine(*DScr[ts],0,160,i,A_NORMAL); : 6150
>Genlib : gl_draw_hline_dg(0,160,i); : 8470
>Extgraph (asm) : HLine_OR(0,160,i,DScr[ts]); : 9915
Compare ce qui est comparable. gl_draw_hlin_dg affiche une ligne en gris fonce. HLine_OR ne me semble pas faire de meme... Est-ce que affiche au moins une ligne en niveau de gris ? Et il faut comparer avec differentes valeurs aussi. Et c'est clippee, oui.
null Le 14/02/2003 à 17:34 Oui, c'est vrai mais moi je cherche les routines les mieux adapté à ce que je veut faire.
Là j'ai pas forcéement besoin du clipping donc je prend les plus rapides non clippées.
Tu as déjà testé le clipping de tes routines ? Parce-que moi j'ai eu des pb avec mon moteur et en plus ça plante 1 fois sur 5 sur ma HW2.
Si tu veux je peux t'envoyer mon programme (comme ça tu verras si elle foire vraiment et ce que tu peux faire).
www.wikio.fr/user1921&info=comments
PpHd Le 14/02/2003 à 17:41 LOL. Tu m'etonnes que genlib soit legerement inferieure... Tu affiches avec extgraph en noir/blanc (J'ai verifie). Genlib affiche en niveau de gris.
Cela nousdonne donc :
Extgraph (C) FastDrawHLine(*DScr[ts],0,160,i,A_NORMAL); : 3075
Genlib : gl_draw_hline_dg(0,160,i); : 8470
Extgraph (asm) : HLine_OR(0,160,i,DScr[ts]); : 4800
GEnlib est bien devant. Et de loin. Merci