Testing Renderer Speeds? Benchmarking?


mikeeeee

Still Fresh
Joined
Jun 6, 2007
Messages
3
Not sure if this is the correct section so sorry if I posted in the incorrect area.

I have wrote a renderer which is highly optimised for 16bit 565RGB and ported it to the GP2X from Windows Mobile, I am unsure how to go about testing the speed of it and to how this would be deemed fair. The renderer has the ability to have images drawn with a variety of blend modes such as opacity, additive, subtraction, multiply, screen, colour tint, fill etc etc.

I have tested it versus SDL which clears the screen and draws 200 200x200 sized images to the screen.
Mine - 18fps
SDL HWSURFACE|DOUBLEBUF - 17fps
SDL SWSURFACE - 11fps

I draw my buffer directly to fb0 on the gp2x which leads me to wonder how it is the same speed as SDL with hardware? or am I thinking incorrectly? I have looked into the hardware blitter and implemented it but its does seem very practical with the amount of image manipulation I do.

Any advice/comments are welcome. :)
 
If your writing a lot of data directly to the frame buffer, then try implementing my mmu hack - it should speed up your fps quite nicely.
 
Hey,

My attempts to use mmuhack are not very successful.

The fb is allocated in upper memory within my lib's renderer initialise function using:

CODE
int Uppermemfd = open("/dev/mem", O_RDWR); //Open the memory for reading/writing
fb = (unsigned short*)mmap(0, 320*240*sizeof(unsigned short), PROT_READ | PROT_WRITE, MAP_SHARED,Uppermemfd, 0x03101000);


In the program after I call initialise I run the mmuhack, in telnet this says 'Using mmuhack' but the fps is still 18 and I see no difference.

CODE
system("/sbin/insmod mmuhack.o");

int mmufd = open("/dev/mmuhack", O_RDWR);
if(mmufd < 0)
{
printf("MMU hack failed");
}
else
{
printf("MMU hack loaded");
close(mmufd);
}


Any ideas?
 
maybe you are using the faulty mmuhack module? there were two compiled builds. One of them didn't work at all...
 
I used this one here which I downloaded yesterday which is apparently the one which works.

:huh:

could the method I use be a reason? Since I do alot of graphic manipulation with my optimised algorithms a screenbuffer is held within the renderer, when the flip command is called the buffer is then copied fully to the fb.
 
Back
Top