[AD] Clear MMX

[ Thread Index | Date Index | More lists.liballeg.org/allegro-developers Archives ]




Ok, here we go again:

I've managed to make clear work with MMX.

Now for the benchmarks (all in clean DOS), running test's "time some stuff"

On memory bitmaps, I get:

on my PII 300 -> 337, 32MB SDRAM (100MHz), 75Mhz FSB, Matrox Mystique
I get a (sigh) 0.8% decrease in performance of clear()

on my Celery 300a -> 450, 128MB SDRAM (100MHz), 100MHz FSB, RivaTNT (Diamond ViperV550),
I get a 10.8 % increase in performance.

That's not quite what I expected. I'll see if I can optimize the routine some more.

But first:

I can't test it on video bitmaps because for some reason screen->seg is invalid. The MMX routine locks up the computer when I try to clear a video bitmap (in VESA2L), or does absolutely nothing (but still uses the cpu cycles it should (???)) in VESA1 or VESA2B. Either the region isn't memory mapped (but then, how does the rest of Allegro work ?) or you can't use MMX's movq on video memory. If the later, than a lot of the benefits of using MMX in the first place are gone.

Question: does WRITE_BANK() reset the FPU in any way ? Apart for VESA1 and 2B, do we really need to call this ?



 - Robert J Ohannessian


There is always one more bug.



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/